Quality driven expert system

ABSTRACT

A quality driven expert system maps answers input by a user in a user questionnaire into a set of qualities descriptive of a desired output entity. A library of output entities, such as network architectures is provided, each described by values for various ones of the qualities. The qualities derived by the expert system from the user&#39;s answers are matched against the qualities of the various output entities in the library to determine which entities match the specified qualities. A score for each output entity is determined by an associative matching algorithm as a function of the degree of match between each entity and the specified qualities, along with an explanation of the degree of match between each specified quality and the qualities of the output entity. A selected number of the highest scoring entities are returned to the user to further inspection and comparison. The expert system architecture may be applied in various application domains, one useful implementation of which is for the selection of network architectures for computer networks.

BACKGROUND FIELD OF INVENTION

The present invention relates to expert systems and databases forevaluating user inputs to select entities from the database, and moreparticularly to expert systems and methods which derive qualityinformation from user requirements and match the quality informationwith quality descriptions of entities in the database.

BACKGROUND OF INVENTION

Expert systems are commonly used today to perform a wide variety oftasks where a multitude of facts in a selected environment orapplication domain need to be analyzed to determine an appropriateresponse or diagnosis. Expert systems are particularly useful inapplication domains that are highly technical and typically requireexpert level knowledge and judgment in order to produce accurate andreliable assessments of facts and appropriate responses.

The typical expert system includes a knowledge base, an inferenceengine, and a user interface for obtaining case specific facts. Theknowledge base encodes the "expert" knowledge of the application domaininto a set of IF . . . THEN . . . ELSE statements (or rules) and factstatements. All knowledge about the domain is typically encoded throughthese rules and facts. The inference engine applies the case specificfacts to the knowledge base rules and facts to derive a final set offacts or conclusions about the case. For example, a medical diagnosisexpert system would take as case specific facts various symptoms and labresults of a patient, apply these facts to various diagnostic rules, andoutput a conclusion about what illness the patient has.

This conventional expert system architecture has a number of drawbackswhich have been well documented. One particular problem is that becauseall of the knowledge is encoded in the rules of the knowledge base,modification of such rules is necessary in order to add new knowledge tothe system. For example, to add a new disease to a conventional medicalexpert to system, a programmer must write new IF . . . THEN rules whichencode the diagnosis procedure for this disease, create new types offacts necessary to capture the information such new rules require, andtypically modify the user interface to ask the appropriate questions tocapture the new facts. This makes the expert system brittle, because itcannot identify new patterns or outputs which have not been encoded intothe knowledge base. In addition, it makes modification of the expertsystem difficult due to the complexity of both determining what the newrules should be and programming them into the system, along with makingall of the other changes necessary to incorporate the new information.

A more general way of expressing this conventional design of expertsystems is to say that they directly map a set of inputs--the casefacts--to a set of outputs--conclusions, diagnosis--through a knowledgebase of rules and other facts. Because the mapping is direct, and themapping is based entirely on the knowledge base rules, and modificationof the knowledge base is a necessary condition to alter the outputs forany given set of inputs.

One area of technical complexity suitable for expert systems generallyis the design and development of computer networks. Traditionally, thedesign and installation of such networks has been left to a select cadreof skilled management information systems professionals who manuallyanalyze the needs and requirements of a client, such as corporation orbusiness, and design a computer network to meet such needs. MISprofessionals typically rely on years of training, along with experiencegained from previous installations, to know which network architecturesare suitable for various user needs and requirements. Each networkdesigner typically applies her own heuristics and judgments to bothidentify the client's requirements and then translate those requirementsinto the elements of a network architecture a and a project plan forimplementing the network.

Expert systems have been previously designed for selection of computernetwork architectures. Conventional in design, such expert systemsencode specific rules to determine which components of a networkarchitecture are indicated by the specific requirements input by a user.For example, a conventional expert system in this application domain maytake the facts of the required number of network users, the budgetamounts, the geographic extent of the network, and using conventionallyencoded rules, map those inputs directly to a specific networkarchitecture. If there is a desire to add new network architectures tothe expert system, new rules must be encoded in the knowledge base torepresent the features and elements of such new architectures. Again,this process is time consuming and expensive, and the resulting expertsystem is relatively inflexible, particularly for unskilled end users.

The need to update the knowledge base of an expert system isparticularly pressing in application domains such as computer networkdesign. First, the variety of desirable network architectures isconstantly evolving as new communication technologies are brought tomarket. Second, network designers typically rely on their experience andsuccess with previous network architectures when designing new ones, anddesire to capture such information in design tools that they use. Aconventional expert system would be cumbersome and inefficient in thisapplication domain, having to be repeatedly updated in order toaccommodate both the latest technology information, and individualusers' experiences and preferred designs. Since most network designersare not expert system programmers, they must use the services of such aprogrammer to translate new knowledge and information into the rules andother elements of the to expert system program.

Another design problem of conventional expert systems is the manner inwhich they produce output facts from a given set of input facts.Conventionally, expert systems output a set of facts, such as adiagnosis to a given set of inputs. Typically, expert systems do not letthe user weight or prioritize the input facts in order to influence theselection of outputs. At best, expert systems use confidence measuresencoded into the rules in order to accommodate incomplete or uncertaininput facts. These confidence measures are predefined by an expert andare typically not subject to user modification during the analysis of anindividual set of input facts. Thus, confidence measures merely describethe uncertainty of the causal relationship between the input facts andthe outputs. This problem of confidence measures again stems from thefact that the expert system relies on mapping directly from the inputspace to the output space using the knowledge base, with the confidencemeasures typically used to augment existing knowledge base rules(indicating the confidence of the rule upon firing). Confidence measuresdo not therefore provide the user with an indication of the quality ofthe output relative to the inputs. Nor do confidence measures allow theuser to understand the relative significance or influence of differentaspects of the input facts on the resulting outputs.

Accordingly, it is desirable to provide a new architectures for expertsystems that enables the selection of outputs through an indirectmechanism expressive of the qualities of the outputs relative to theinput facts. A desirable expert system should be easily modifiable toaccommodate new information about available outputs without significantcomputer programming. A desirable implementation of such an expertsystem is for the selection of network architectures in response toqualities derived from a user's requirements, along with the ability toeasily update the expert system to incorporate new network architecturesand designs.

SUMMARY OF THE INVENTION

The present invention overcomes the problems of conventional expertsystems by providing a new type of expert system architecture thatseparates the mapping of the input space of case specific facts from thedetermination of the output space by interposing an intermediate qualityspace, and limiting the expert system to operate just in the qualityspace.

Qualities are used to describe the features of entities in an outputspace. For example, various network architectures may each be describedby a set of qualities such as their size, type, cost, and performance.Qualities are defined by experts for some number of different entitiesin the output space. The expert system encodes a set of rules that map agiven set of case specific facts input by the user into a set of casespecific, required qualities, rather than directly onto one or more ofthe entities of the output space. Instead, an associative matchingalgorithm is then used to match the required qualities output from theexpert system with the defined qualities of the output space entities.The associative matching algorithm provides for measuring the degree towhich the qualities associated with the entities satisfy the requiredqualities derived from the user's inputs. In this manner the systemprovides a range of potential candidate outputs ranked in order of thedegree to which the entities satisfy the required qualities.

One of the benefits of the quality driven expert system architecture isthe ability to easily update the system to incorporate new outputentities available for evaluation and selection. Instead of having toencode new rules in a knowledge base and update the user interface tocapture new facts, the user adds a new entity to the system by definingits qualities in the existing quality space. These qualities are statedin the application domain, such as the qualities applicable to networkarchitectures. An expert in the application domain may easily add newentities to the system, by describing these entities by they applicablequalities; no changes to the expert system rules or user interface areneeded. This process is considerably easier than conventional expertsystems that require either the expert or a knowledge engineer toprogram new rules into the knowledge base to capture the new entities,and devise new questions to capture the facts important to suchentities. In the present invention the associative matching algorithmautomatically considers and evaluate these new candidates when matchingthe qualities derived from the user with the output entities.

One embodiment of the present invention is an expert system forselecting a network architecture for a computer network. In thisembodiment, the output space entities are a set of networkarchitectures. Each network architecture is completely described by aset of qualities, such as the network type, processing loads, latencylevels, and other features. The qualities are preferably assigned byexperts familiar with the features, advantages, and disadvantages ofvarious types of computer network architectures. The system isinherently flexible and extensible since the user can add new networkarchitectures by specifying their qualities. The network architecturespreferably include additional descriptive information, such as networkdiagrams, explanations of the features and benefits, advantages anddisadvantages and the like.

The system includes a user questionnaire interface which presents aseries of questions to the user to capture various facts about theuser's needs and requirements. These questions need not be directlyrelated to individual qualities of the network since these tend to betechnical features of which users may have no knowledge. Rather, thequestions are intended to capture the high level needs of the user. Theuser provides answers to these questions, the answers forming the set ofcase specific facts. In one embodiment, the user questionnaire interfacefurther allows the user to prioritze various requirements, therebyreflecting which issues or needs have priority for the user. This allowsthe requirements to reflect the user's priorities when there aretrade-offs between requirements, such as between cost and performance.

The system includes an expert system having a knowledge base of ruleswhich maps the user's answers into the quality space to derive a set ofrequired qualities for the network architecture. The priorityassignments are used by the expert system to derive weights for therequired qualities; these weights will then influence which networkarchitectures satisfy the user's requirements.

The system further includes an associative matching algorithm thatcompares the required qualities with the qualities defined for variousones of the network architectures to produce a set of selected networkarchitectures which satisfy the user's requirements to various degrees.The associative matching algorithm takes into account the weightsassigned to the required qualities as derived from the user's answers.The result set of selected architectures is ranked in order of thedegree to which their network qualities satisify the required qualities.The associative matching algorithm also produces for each selectednetwork architecture an explanation describing the selection of eacharchitecture, and particularly the degree of closeness between eachrequired quality and the qualities of the network architecture.

The qualities are preferably constructed so that they are orthogonal,meaning that the qualities are independent of each other. Orthogonalqualities can be combined in almost any way with each other and will belogically consistent. The qualities also preferably form a minimal set,meaning that all of the factors which affect selection of an outputentity, such as a network architecture for a computer system, arerepresented using as few qualities as possible.

Qualities are also preferably hierarchical in the sense that ahigh-level quality is defined by a set of more detailed qualities. Inthe case of hierarchical qualities, independence or orthogonality meansthat each branch of the hierarchical tree is independent of any otherbranch. Qualities are grouped into a set of logically-relatedcategories, such as cost, risk, performance, and weights may be adjustedfor individual qualities or categories of qualities.

For each quality, there is a value of the quality. Qualities also havetypes, including "symbol" qualities, "level" qualities, and "parent"qualities, which define the types of values for the quality. Symbolqualities are used to define qualities for which discrete symbolicvalues are used. For example, a geographic quality for a network is asymbol quality since the values of the quality are symbolic tokens suchas "WAN," "MAN," and "LAN." Level qualities have numeric values, such asthe number of nodes for a network.

Parent qualities are hierarchical qualities that are defined by lowerlevel child qualities. Each network architecture is defined by thevalues assigned to the various qualities. The expert system determinesfrom the user's input facts the required qualities (as not all qualitiesmay be required) and their values.

In the preferred embodiment, the associative matching algorithm comparesthe values of the required qualities with the values of the qualitiesfor selected ones of the network architectures. Generally, theassociative matching algorithm determines for each required quality,whether the quality value of the required quality is satisfied by thequality value of corresponding quality of a network architecture. Foreach required quality, the associative matching algorithm produces amatch score. Where weighted qualities are used, the match score ispreferably a function of the weight of the required quality; thisadjusts the match scores of individual required qualities by thepriority or importance attributed to the quality by the user. One way ofimplementing weighted match scores is to set the match score equal tothe quality weight of the required quality when the quality of thenetwork architecture satisfies the required quality.

The match scores for all of the required qualities are totaled to definean architecture score for the network architecture. The networkarchitectures are then ranked by their architecture scores. The user maythen select the best fitting network architectures for review of theirdescriptions, diagrams, and the like. It should be understood that therequired qualities describe the ideal qualities of an output entity; oneof the powerful features of the associative matching algorithm is theability to select entities which do not have all of the requiredqualities, but rather some variance therefrom. The associative matchingalgorithm also provides for each network architecture a selectionexplanation with an indication of the degree to which the networkarchitecture satisified each required quality.

In one embodiment, the associative matching algorithm uses fuzzy logicto determine the degree of match between the value of required qualityand the value of the quality for a network architecture. Moreparticularly, fuzzy logic applies the weight associated with a qualityto the difference between the required value and the network's qualityvalue, to produce a weighted match score for that quality.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a computer system providing a hardwareenvironment for the present invention.

FIG. 2 is a process model of the overall operation of the presentinvention.

FIG. 3 is an illustration of the user interface for viewing andselecting network architectures.

FIG. 4 is an illustration of the user interface for viewing a detaileddescription of a network architecture.

FIG. 5 is an illustration of the user interface for assigning qualitiesto a network architecture.

FIG. 6 is an illustration of a sample question in the userquestionnaire.

FIG. 7 is an illustration of another sample question in the userquestionnaire for determining the weighting of requirements.

FIG. 8 is a flowchart of the associative matching algorithm.

FIG. 9 is an illustration of the user interface for reviewing theselected network architectures output by the associative matchingalgorithm.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT System Overview

Referring now to FIG. 1 there is a shown an illustration of a suitablecomputer system configured to provide the quality driven expert systemand associative matching algorithm of the present invention.

The present invention may be implemented on a conventional computer 100including a processor, addressable memory 102, storage devices, mouse,keyboard, and display. The computer 100 executes a conventionaloperating system, such as Microsoft Corp.'s Windows 95™, or Windows NT™.

In an embodiment of the present invention there is stored in theaddressable memory 102 an architecture advisor 104, which is one type ofsoftware product implementing the features of the present invention toprovide an expert system and associative matching algorithm, in thisembodiment for selecting network architectures for computer networks.The present invention is not limited to the application domain ofcomputer networks, but may be disposed in any application domain forwhich the set of output entities can be defined by a finite number ofqualities, and for which rules or heuristics may be defined for derivingsuch qualities from a set of input facts.

In the architecture advisor 104 embodiment there is included anarchitecture library 108, a set of quality tables 110, a userquestionnaire 112, an expert system 114, and an associative matchingalgorithm 120.

The architecture library 108 is a database of network architecturedescriptions, including for each network architecture a self describingset of qualities and values pertaining to the architecture. The networkarchitectures form the output entities for this embodiment of thepresent invention. The architecture advisor 104 assists the user inselecting one of the network architectures for use in the design andimplementation of a computer network, including client server networks.The architecture library 108 includes data defining the types of networkarchitectures, the identification of network architectures, thequalities associated with each network architecture, and the networkarchitectures selected by the architecture advisor 104.

The quality tables 110 provide the definition of the quality space bywhich the network architectures are described. The quality tables 110include descriptions of the types of qualities, the individual qualitiesthemselves including their descriptions, the possible values for varioustypes of qualities, the required qualities resulting from a user's inputrequirements, and a set of object qualities which describe the qualitiesof specific features of individual network architectures.

The user questionnaire 112 presents a set of questions to the userthrough the user interface 106 to elicit answers defining the user'srequirements. In the embodiment of the architecture advisor 104, theuser questionnaire 112 includes questions regarding the needs andrequirements of a user for a computer network installation. The answersprovided by the user are encoded into a list of facts which is input tothe expert system 114. The answers may also include informationindicating the user's priorities or tradeoffs in deciding whichrequirements are more significant.

The expert system 114 includes a set of rule tables 118 and an inferenceengine 116. The rule tables 118 define the rules that map the user'sanswers onto the qualities to produce a set of required qualities, suchas the required qualities for a network architecture. Some of therequired qualities are weighted according to either default weights orthe weights derived from the user's answers. The rule tables 118 includea rule base table listing distinct groups of rules defining distinctapplication domain, individual rules which are comprised of rule partsto define the antecedent and consequent elements of rules. The inferenceengine 116 is a conventional forward chaining type and operates upon thevarious rules and the facts input by the user.

The architecture library 108, quality tables 110, and rule tables 118are preferably implemented in a relational database to allow for ease ofassociation between these elements.

Finally, the present invention includes an associative matching toalgorithm 120. This executable module takes as inputs the requiredqualities produced by the expert system 114, and the networkarchitectures described by their qualities, compares them to produce anarchitecture score, and selects the network architectures that best fitthe required qualities based on their ranked scores. The associativematching algorithm 120 generally determines is for each requiredquality, whether a quality value of the required quality is satisfied bya quality value of a corresponding quality of a network architecture.The associative matching algorithm 120 determines an architecture scoreas a function of whether such qualities are satisfied.

One embodiment of the associative algorithm 120 implements a fuzzy logicanalysis that weights the difference between the required quality valuesand the network architecture quality values by the weights of therequired qualities, to determine a ranked list of the networkarchitectures that best match the required qualities.

The user interface 106 is used to display descriptions of the networkarchitectures to the user, to display the questionnaire data and receivethe user's answers, and to output the list of network architectures fromthe associative matching algorithm.

The architecture advisor 104, or any other domain specific softwareproduct embodiment of the present invention, or any variation thereof,may be stored on CD-ROM, diskette, or any other computer readable memoryor media, and provided to the computer system 100 for installation andexecution thereon.

Operational Overview

Referring now to FIG. 2 there is shown a process model of the overalloperation of the architecture advisor 104 embodiment of the presentinvention. Other types of embodiments operate in a similar fashion giventhe architecture of the present invention.

The user questionnaire 112 is presented to the user through the userinterface 106. The user questionnaire 112 includes a series of questionsto which the user responds with a set of answers 115. The questions maycall for selecting one or more of multiple options, a yes/no response,numeric, or symbolic inputs. The answers 115 describe the user's needsand requirements for a computer network. In the preferred embodiment theanswers 115 are stored as a fact list of (attribute, value) pairs, theattributes being a token representing a fact and the value beingrepresentative of the answer provided by the user. In one embodiment,the answers 115 may include user assigned orderings or weights whichreflect the priority or importance of various requirements relative toother requirements. While the preferred embodiment of the userquestionnaire 112 provides a sequenced presentation of questions, otherembodiments may be implemented, such as a spreadsheet or form where allthe questions are presented at the same time.

The answers 115 are input to the inference engine 116 of the expertsystem 114. The expert system 114 derives a set of required qualities124 from the questionnaire answers 115. The questions in the userquestionnaire 112 are formulated to be clear and simple for the user tounderstand, but are not in the best form for selecting a networkarchitecture. The qualities represent the user's requirements in atechnical and detail form thus are in a form that is not easilyunderstood by the user. Since there is a complicated relationshipbetween the questionnaire answers 115 and the qualities 124, the expertsystem 114 is used to map the answers 115 into the quality space.

The inference engine 116 applies the rules of the rule tables 118 andqualities 110 to the answers 115. The rules 118 defines therelationships between the facts of the answers 115 and various qualitiesdefining the network architectures. From the various facts in theanswers 115, the expert system 114 determines the appropriate requiredquality 124, the value of the required quality, and the weight (if any).Not every possible quality in the set of qualities 110 has an instancein the required qualities; the values associated is with the requiredqualities may be the actual values specified by the user in the answers115, or may be value determined by the expert system 114 according tothe rules 118. The required qualities 124 represent the qualities of anideal network architecture.

Once the required qualities 124 are determined they are provided to theassociative matching algorithm 120, along with the architecturequalities defined in the architecture library 108. The associativematching algorithm 120 takes each of the required qualities and comparesit with the qualities defined for selected ones of the networkarchitectures in the architecture library 108 to determine how well thequality of the network architecture satisfies the required quality. Theassociative matching algorithm 120 may operate over the entire set ofnetwork architectures in the architecture library 108, comparing thequalities of each one with the required qualities 124, or it may operateon a limited subset of the network architectures, using optimizationmethods to narrow the search space. It should be noted that in mostinstances, none of the network architectures will fully satisfy all therequired qualities, but some architectures will satisfy the qualitiesbetter than others. Thus, the associative matching algorithm 120identifies that network architectures that best meet the user'srequirements.

In either implementation, the associative matching algorithm 120 outputsfor a network architecture an architecture score that describes theoverall match between the network architecture and the requiredqualities 124 on a predefined scale (e.g. 0 to 100, 100 being a perfectmatch). The architecture score is computed by comparing the qualityvalue of each required quality with the quality value of thecorresponding quality of the architecture. One scoring method is toincrease the architecture score by the weight of the required quality ifthe quality value of the corresponding quality of the networkarchitecture satisifies the required quality value of the requiredquality; or decrease it by this amount if the quality value does notsatisfy the required quality value.

The associative matching algorithm 120 ranks the network architecturesby their architecture scores, and displays the list of a selected numberof highest ranking network architectures to the user through the userinterface 106. In one embodiment, for each selected network architecturethere is a selection explanation that describes the reasons for thearchitecture score in terms of the individual matches between therequired qualities and the networks qualities. FIG. 9 illustrates oneexample of the output of the associative matching algorithm 120 showingthe architecture score 903 and selection explanation 907 for a selectednetwork architecture. The user may obtain the detailed descriptioninformation of any network architecture from the architecture library108 to understand the specific design details and configuration of thenetwork architecture, including its features, advantages, anddisadvantages. The user may then select one of these networkarchitectures to apply to computer network, either as described or inmodified form.

The present invention has been described here with respect to animplementation for advising on the selection of computer networkarchitectures. The following description provides further details ofthis one implementation. This implementation is but one application ofthe present invention, which may be implemented in any variety ofapplication domains.

Architecture Library

The architecture library 108 stores a set of network architectures in adatabase format. Each network architecture is described in detail toassist in the user's understand of the structure, features, benefits,and disadvantages of the network architecture. The network architecturesare preferably chosen by industry experts and represent a large set ofthe known good architectures for implementing a wide variety ofclient/server systems. In the preferred embodiment, each networkarchitecture includes a textual description, along with its advantagesand disadvantages. In addition, each network architecture consists of adiagram showing the logical components of a client server/system,including the client computers, the server computers, the LAN networks,WAN networks, and the like. These parts of the architecture library 108are for the user's benefit, and are not used by the architecture advisor104 to select one or more network architectures.

The descriptions of the network architectures are logical rather thanphysical. They describe logical models of successful client/servercomputer networks and architectures, and include categories ofcommunication protocols such as 10BaseT, 100BaseT, FDDI, Token Ring, andthe like. The architectures exemplify different levels of redundancy,network management, performance, and so forth, but preferably do notcontain detailed information about specific hardware brands or vendors,hardware specifications such as computer memory requirements, networkinterface cards, or the like, though such details may be implemented ifdesired.

FIG. 3 illustrates one screen 300 of the user interface 106 for viewingnetwork architectures for investigating their features. In FIG. 3 thereis shown the name 301 of the network architecture, its type 303, a briefdescription 305, and its diagram 307. The user may move forward orbackward through the architecture library 108 with the next and backwardbuttons, and review a more detailed description with the detail button.Expert users may edit the with the edit button. The detailed descriptionscreen 400 is illustrated in FIG. 4, and includes a detailed description401, advantages 403, and disadvantages 405. The user can copy any of thetext blocks and paste them into other documents, thereby facilitatingthe creation of project plans, proposals, or other documentation.

Appendix A contains a listing of network architectures and descriptionsincluded in one embodiment of the architecture library 108. Appendix Bcontains example descriptions, advantages, and disadvantages for fournetwork architectures.

Each network architecture is also defined by a set of qualities, eachquality associated with at least one quality value. These qualities areused by the associative matching algorithm 120 to match against theuser's required qualities to select and rank selected networkarchitectures for the user to evaluate.

Users (for example system administrators, or consultants) are able todefine their own network architectures for inclusion in the architecturelibrary 108. This may be done by modifying the description and qualitiesof an existing architecture and saving it back to the database under anew name, or adding a completely new network architecture along with itsqualities. No changes to the expert system rules or set of qualities areneeded. The associative matching algorithm 120 will automaticallyinclude this new network architecture when selecting matching networkarchitectures to the required qualities 124.

Data Elements of Architectures

The architecture library 108 includes several relational tables thatstore the descriptions of the network architectures along with theirqualities in a relational database. Table 1 defines one embodiment ofthe architecture library 108. The italicized attributes are primarykeys.

                  TABLE 1                                                         ______________________________________                                        Architecture Library                                                          Data Entity                                                                             Data Attribute                                                                            Attribute Description                                   ______________________________________                                        Architecture                                                                            Architecture Type                                                                         Architecture type--Workgroup,                           Types                 Corporate, Branch Office,                                                     Enterprise, Remote Access,                                                    Internet, Intranet, Two-tier                                                  Middleware, Three-tier                                                        Middleware                                                        Architecture Type                                                                         Textual description of                                            Description architecture type                                       Architectures                                                                           Architecture ID                                                                           Integer uniquely identifying an                                               architecture                                                      Architecture                                                                              Textual name of architecture                                      Name                                                                          Architecture Type                                                                         Links to an entry in Architecture                                             Types table                                                       File Name   File name on disk where                                                       architecture diagram is stored                                    Architecture                                                                              Short textual description of                                      Short Description                                                                         architecture                                            Architecture                                                                            Architecture ID                                                                           Links to an entry in                                    Descriptions          Architectures table                                               Architecture                                                                              Type of description--Long                                         Description Type                                                                          Description, Advantages                                                       ("Plus"), Disadvantages                                                       ("Minus")                                                         Architecture                                                                              Long textual description of                                       Description architecture                                            Architecture                                                                            Architecture ID                                                                           Links to an entry in                                    Selections            Architectures table                                               Project ID  Links to a specific project plan.                                 Architecture                                                                              Numeric score ranking the                                         Score       architecture                                                      Architecture                                                                              Description of why Associative                                    Selection   Matching Algorithm selected                                       Explanation and scored architecture as it did                       Architecture                                                                            Architecture ID                                                                           Links to an entry in                                    Qualities             Architectures table                                               Quality ID  Links to a quality in Quality table                               Quality     Operator for matching of                                          Operator    required qualities                                                Quality Value                                                                             Actual value for quality for this                                             object                                                  ______________________________________                                    

The architecture types table defines the types of network architecturesdescribed in the architecture advisor 104. The architectures in thearchitecture advisor 102 may be grouped into the following types:

1. Workgroup, 2. Corporate, 3. Branch Office,

4. Enterprise, 5. Remote Access, 6. Internet,

7. Intranet, 8. Two-tier Middleware 9. Three-tier Middleware.

Each type is associated with a type description.

The individual network architecture are described by the architecturestable. Each network architecture has a unique architecture ID, a name,an association with an architecture type, a file name of thearchitecture diagram, and a short text description.

The architecture descriptions table provides the more detaileddescription of each network architecture. Each architecture descriptionis linked to an architecture by the architecture ID, and includes adescription type (long, advantages, disadvantages), and the text of thedescription. The description type is used to place the variousdescriptions into the appropriate portions of the user interface (seeFIG. 4).

The architecture selections table is the set of selected networkarchitectures output by the associative matching algorithm 120. Each ofthe selected network architecture is linked to one of the definednetwork architectures by the architecture ID. A project ID is used toassociate the selected network architecture to a specific implementationproject, allowing the user to process multiple projects with thearchitecture advisor 102 (a project plan table is not shown). For eachselected network architecture there is an architecture score which isthe total score output by the associative matching algorithm 120. Thearchitecture selection explanation is a text block generated by theassociative matching algorithm 120 during the matching process thatexplains the particular scoring of the selected network architecture.

Finally, the network architectures are defined by a set of qualitiesthrough the architecture qualities table which links individualarchitectures by architecture ID with individual qualities by a qualityID (explained below). A quality operator describes how the specificquality is applied to the architecture, and is used to determine whetherthe quality satisfies a required quality.

Qualities

The expert system 114 produces a set of required qualities 124 afterprocessing the rules 118 for transforming the questionnaire answers intoqualities. Qualities are stored in the same database as the architecturelibrary 108 and are defined by experts.

In one preferred embodiment, the qualities are preferably constructed sothat they are orthogonal, meaning that the qualities are independent ofeach other. Orthogonal qualities can be combined in almost any way witheach other and will be logically consistent. The qualities are alsopreferably minimal, meaning that all of the factors which affectarchitecture selection for an output entity (e.g. network architecture)are represented using as few qualities as possible. Qualities are alsopreferably hierarchical in that if a higher-level quality isinstantiated for an output entity, then a set of more detailed qualitiesis provided to define the full information on that quality. Thehierarchical qualities thus form parent qualities which have childqualities, recursively for at least two levels in a hierarchical tree ofqualities. In the case of hierarchical qualities, orthogonality meansthat each branch of the hierarchical tree is independent of any otherbranch. Qualities may also be are also grouped into a set oflogically-related categories. While orthogonal, hierarchical qualitiesare preferred, the present invention may also be used withnon-orthogonal, non-hierarchical sets of qualities.

In the process of answering questions in the user questionnaire 112, theuser can optionally prioritize various requirements, thereby inducingthe assignment of weights to qualities associated with theserequirements. This allows the user to instill their tradeoffs orpreferences into the selection of a suitable network architecture. Theinput of weighting is preferably by multi-wise comparison. For example,the user may be asked which of the qualities of COST or PERFORMANCE ismore important, with the architecture advisor 104 iterating through thevarious qualities until an order of all or some qualities is obtained.Alternatively, the weighting may be direct, for example by the userinputting a weight between 1 and 100, and the architecture advisor 104then normalizing all weights on a predetermined scale.

Detailed Description of Qualities

In one embodiment of the present invention, each quality has a type anda value. There are 3 types of qualities: "level", "symbol", and"parent". Level qualities take as their value integers between 1 andsome maximum value. The maximum value will vary for different levelqualities. Symbol qualities consist of strings of one or more symbols(tokens) in a list. Parent qualities are also symbols (tokens) anddefine a hierarchical quality, creating a branch point in the qualityhierarchy.

Qualities are either object qualities or are required qualities. Objectqualities are the qualities used to define an output entity, such as anetwork architecture and associated therewith through the architecturequalities table (See Table 1) in the architecture library 108. Objectqualities make the output entities self describing.

Required qualities describe the properties of the network architecturebeing developed by the user and are derived from the answers 115 to userquestionnaire 112.

Required symbol qualities must be atomic. Object symbol qualities may bea list of symbols.

Each object quality has an operator. The quality operator describes howthe value of the quality is applied with respect to the value of therequired quality. For example, a level object quality (e.g. number ofusers for a LAN may have a value of 100 and an operator of "<=", meaningthe quality pertains for LAN having 100 or fewer users. Requiredqualities have no operators, since they define the value of the qualitythat the user has required.

A required quality may have a weight indicating its importance to theproject being developed, relative to the other qualities. Objectqualities have no weights.

Table 2 summarizes the properties of object qualities and requiredqualities.

                  TABLE 2                                                         ______________________________________                                        Quality Properties                                                            Property     Object Quality                                                                           Required Quality                                      ______________________________________                                        values       atomic or list                                                                           atomic                                                operator     YES        NO                                                    weight       NO         YES                                                   ______________________________________                                    

Table 3 defines the types of operators used for the various types ofqualities:

                  TABLE 3                                                         ______________________________________                                        Quality Operators                                                                      Level          Symbol   Parent                                       Property Quality        Quality  Quality                                      ______________________________________                                        operators                                                                              =, >=, <=      in, not in                                                                             =                                            ______________________________________                                    

Symbol qualities only have the operators, "in" and "not in". Theseoperators mean that an entity either has or does not have thecharacteristic defined by the value of the quality. Level qualities havethree possible operators, "=",">", and "<=". Parent qualities have onlyone possible operator, "=".

If an architecture is not assigned a particular object quality, thismeans the architecture is independent of that quality and by defaultsatisfies that quality. If an object quality is left out for anarchitecture, this means the architecture "does it".

The grammar of object qualities associated with object X is as follows:

General format:

Architecture X has "quality₋₋ name" "quality₋₋ operator" "quality₋₋value"

Example of object level quality:

Architecture 866 has "criticality level" ">=" "2"

Example of object type quality:

Architecture 866 has "Legacy System Interface Type" "in" "1-waysynchronous", "1-way asynchronous"

Example of object parent type quality:

Architecture 866 has "Application Parent Type""OLTP"

The grammar of required qualities resulting from the questionnaire is asfollows:

General Format:

System will have "quality₋₋ name"="quality₋₋ value" with weight"quality₋₋ weight"

Example of required level quality:

System will have "Future Growth Level"="3" with weight "1"

Example of required symbol quality:

System will have "WAN Network Traffic Profile Type"="Bursty" with weight"5"

Example of required parent quality:

System will have "Application Parent Type"="OLTP"

Data Elements for Qualities

The qualities described above are implemented in a number of relationaltables in the database with the architecture library 108. Table 4defines these qualities tables 110.

                  TABLE 4                                                         ______________________________________                                        Quality Tables                                                                Data Entity                                                                             Data Attribute                                                                            Attribute Description                                   ______________________________________                                        Quality Types                                                                           Quality Type                                                                              Quality type--"Symbol", "Level",                                              or "Parent"                                                       Quality Type                                                                              Textual description of quality                                    Description type                                                    Quality   Quality ID  Integer uniquely identifying a                                                quality                                                           Quality Name                                                                              Textual name of quality                                           Quality Type                                                                              Links to an entry in Quality                                                  Types table                                                       Parent Quality ID                                                                         Links to a parent quality in                                                  Quality table                                                     Quality     Textual description of quality                                    Description                                                                   Quality Default                                                                           Default weight for quality                                        Weight                                                              Quality Possible                                                                        Quality ID  Links to an entry in Quality table                      Values    Quality Value                                                                             Possible value for quality                                        Quality Value                                                                             Description of the quality value                                  Description to assist users in assigning                                                  quality values to specific                                                    architectures.                                          Required  Project Plan ID                                                                           Links to a project plan in a                            Qualities             project table                                                     Quality ID  Links to a quality in Quality table                               Quality Value                                                                             Required value for quality for                                                this project plan                                                 Quality Weight                                                                            Importance/Priority of quality                                                relative to others                                      Object Qualities                                                                        Architecture ID                                                                           Links to an entry in                                                          Architectures table                                               Quality ID  Links to a quality in Quality table                               Quality Operator                                                                          Operator for matching of                                                      required qualities. One of "=",                                               "|=", ">=", "<=", "in" or                                                     "not.sub.-- in"                                                   Quality Value                                                                             Actual value for quality for this                                             object                                                  ______________________________________                                    

The quality types are defined by a quality type table having a typeattribute and a type description corresponding to the types describedabove. The qualities themselves are defined by the quality table, whichhas a unique quality ID, a quality name, a link to the quality typetable to define its type, a parent quality ID which, if present,contains the quality ID of a parent quality, thereby defining a childquality to the parent. The quality description contains a textdescription of the nature of the quality.

The quality possible values table defines for each quality (by qualityID) the possible values for the quality, whether atomic or a list.

The required qualities table defines the required qualities 124.Required qualities have a quality ID which links them to one of thedefined qualities in the quality table. Each required quality includes aquality value which is determined by the expert system 114 uponprocessing of the user's answers, and optional weight that describes therelative importance or priority of the quality. In this example, therequired qualities also have a project plan ID which links them to aspecific project plan defined in a separate table. Project plans are nota necessary element of the present invention.

Object qualities are associated with a particular network architectureby an architecture ID and with a particular quality by a quality ID. Theobject qualities have a quality operator, as described above, and aquality value.

Table 5 provides a sample listing of various different qualities,including their name, their parent ID to show the hierarchicalrelationship if any, and their possible values.

                  TABLE 5                                                         ______________________________________                                        List of Qualities                                                                                    Parent                                                 Qual                   Qual    Quality Possible                               ID   Quality Name (Type)                                                                             ID      Values                                         ______________________________________                                        100  Cost (Level)              1,2,3,4                                        101  Data Distribution (Level) 1,2,3                                          102  Processing Distribution (Level)                                                                         1,2,3                                          103  Future Growth (Level)     1,2,3                                          104  Legacy System Interface   1-way synchronous,                                  (Symbol)                  1-way asynchronous,                                                           2-way synchronous,                                                            2-way asynchronous                             105  System Management (Symbol)                                                                              single-image, central,                                                        distributed                                    106  Application Parent (Parent)                                                                             OLTP, Data                                                                    Warehouse,                                                                    Intranet, Internet,                                                           Groupware                                      107  Data Volume (Level)                                                                             106     1,2,3,4                                        108  OLTP Transaction Volume                                                                         106     1,2,3,4                                             (Level)                                                                  109  Geographic Extent Parent  LAN, MAN, WAN                                       (Parent)                                                                 110  WAN - Latency (Level)                                                                           109     1,2,3,4                                        111  WAN Network Traffic Profile                                                                     109     bursty, not bursty                                  (Symbol)                                                                 112  WAN Provider Preference                                                                         109     ATT, MCI, Sprint,                                   (Symbol)                  Other                                          113  WAN Scope (Symbol)                                                                              109     domestic only,                                                                domestic+                                                                     international,                                                                primarily                                                                     international                                  114  LAN Size (Level)  109     1,2,3                                          115  LAN Availability (Level)                                                                        109     1,2,3,4                                        116  LAN Performance (Level)                                                                         109     1,2,3,4                                        117  LAN Network Traffic Profile                                                                     109     bursty, not bursty                                  (Symbol)                                                                 118  Usage Extent (Symbol)     work group, branch                                                            office, corporate,                                                            enterprise                                     119  Performance Scalability   1,2,3,4                                             (Level)                                                                  120  Userbase Size (Level)     1,2,3,4                                        121  Userbase Size Scalability 1,2,3,4                                             (Level)                                                                  122  Database Size (Level)     1,2,3,4                                        123  Database Size Scalability 1,2,3,4                                             (Level)                                                                  124  Open Systems Adherence    1,2                                                 (Level)                                                                  125  Schedule Constraint (Level)                                                                             1,2,3,4                                        126  Data Translation (Level)  1,2,3                                          127  Delivery Preference (Symbol)                                                                            incremental,                                                                  all.sub.-- at.sub.-- once                      128  Existing System Reengineering                                                                           1,2,3                                               (Level)                                                                  129  Security (Level)          1,2,3,4                                        130  Data Refresh Timeliness (Level)                                                                         1,2                                            131  Corporate Repository (Symbol)                                                                           YES, NO                                        132  Flexibility (Level)       1,2,3                                          133  Data Volatility (Level)   1,2,3,4                                        135  Implementation Effort (Level)                                                                           1,2,3                                          136  Local Data Views Required YES, NO                                             (Symbol)                                                                 ______________________________________                                    

Note for example, that the Application Parent quality is a parentquality having children Data Volume (a level type quality) and OLTPTransaction Volume Level.

Assignment of Architecture Qualities

The assignment of qualities to architectures is done by experts familiarwith the design of computer networking problems in general, andpreferably with client/server networks in particular. An example of theassignment of qualities to a network architecture is as follows, asillustrated in Table 6:

Architecture Name: E070:Fault-tolerant system

Architecture Description: Enterprise client/server computing: Afault-tolerant system provides high availability through redundantnetwork, data and CPU.

                  TABLE 6                                                         ______________________________________                                        Quality Assignments for E070: Fault-Tolerant System                           Qual ID                                                                             Quality Name    Operator Quality Value                                  ______________________________________                                        100   Cost            <=       2                                              101   Data Distribution                                                                             <=       2                                              102   Processing Distribution                                                                       <=       2                                              103   Future Growth   >=       1                                              105   System Management                                                                             in       single-image, central,                                                        distributed                                    106   Application Parent       OLTP                                           108   OLTP Transaction                                                                              >=       1                                                    Volume                                                                  109   Geographic Extent Parent                                                                      in       LAN                                            115   Availability    =        4                                              116   Performance     >=       2                                              117   Network Traffic Profile                                                                       in       bursty                                         ______________________________________                                    

Users can add their own architectures to the architecture library 108,along with their own evaluation of the qualities. This allows networkexperts and consultants (who are not likely to be programming expertsadept at programming an expert system) to easily modify the architectureadvisor 104 to include new network architectures based on ongoingexperience without having to reprogram the architecture advisor 104 withnew rules.

Referring now to FIG. 5, to support the addition of new networkarchitectures, the user interface 106 contains a screen 500 forassigning qualities to architectures, or modifying the qualities forexisting architectures.

The top of the screen displays the name 501 and description 503 of aselected architecture. A table 505 in the bottom left of the screenlists the available object qualities, and allows users to select anobject quality to assign to the architecture. The assigned objectquality is then listed in table 507. Here the user specifies a value 511(or list of values) and an operator 509 for the object quality. Valuesand operators are chosen from pre-defined lists of values and operators;users cannot make up new values or operators. The semantics of qualitiesassociated with architectures is described above. When done, the userclicks on the save button to store the quality assignments, whereby thearchitecture advisor 104 updates the appropriate tables in the database.As FIG. 5 demonstrates, no detailed programming of the expert system 114is required to update the database to include new network architectures.The user interface and database routines for the addition of diagrams,and text descriptions for a new network architecture is straightforwardto those of skill in the art.

Quality Weights

In one embodiment, the present invention provides for the optionalweighting of individual qualities in the quality space and the use ofthese weights to determine the ranking of output entities in the outputspace, thereby influencing the degree to which the output entities matchthe required qualities derived from user inputs. Quality weights for therequired qualities allows the system to use heuristics in order toestablish preferences and allow for tradeoffs between any qualities, byestablishing the relative importance between qualities derived fromrequired features.

Generally, human judgments regarding tradeoffs frequently take the form:

"All other things being equal, I'd rather have X than Y." or

"I'd give up some X to get more Y up to a point."

In essence, humans establish priorities between features, within thecontext of constraints.

Accordingly, in a preferred embodiment, the weights may be applied toany desired subset of the qualities and provide a weighted ranking amongthat subset of qualities, i.e., those qualities between which tradeoffsneed to be established.

The capability of producing weights from the user's responses isprovided in four steps:

1. Determine which qualities need to be weighted.

2. Define the form in which the weights are delivered.

3. Assign default values to the weights.

4. Adjust weights in response to user inputs

The first three steps are not done in real-time, but are done as part ofthe software development process when implementing the presentinvention, and the default weights are included in the rules of theexpert system 114. The fourth step also occurs in the expert system 114in response to weights provided by the user in the answers 115 to theuser questionnaire 112. In one embodiment, weights are themselvesestablished as qualities whose sole purpose is to determine weightsassociated with the user's priorities. Not every required quality isassigned a weight by the expert system 114, only the ones that present atrade-off issue and needs user prioritization. Default weights may beused for the other qualities.

The qualities to be weighted are preferably determined by experts in theapplication domain, such as network designers, since not all qualitiesneed be weighted. Generally, qualities should be weighted where thereare constraints or tradeoffs between qualities that preventssimultaneous maximization of multiple qualities. Table 7 describesvarious constraints and tradeoffs for different qualities applicable tothe design of computer networks.

                  TABLE 7                                                         ______________________________________                                        Quality Constraints and Tradeoffs                                             Quality   Defining constraints                                                                           Possible Tradeoffs                                 ______________________________________                                        Cost      How important is it to stay                                                                    Additional funds can                                         within the budget, or to                                                                       be used for increased                                        what extent can additional                                                                     performance                                                  funds be used to gain other                                                   desired qualities?                                                  Performance                                                                             What is the minimum                                                                            Some performance                                             acceptable performance,                                                                        degradation may be                                           measured either in network                                                                     permissible, some                                            traffic load, or user response                                                                 percent of the time.                                         time?            This will reduce cost.                             Expandability                                                                           It is important to plan for                                                                    This may only apply to                             /scalability                                                                            possible reorganization of                                                                     Enterprise networks.                                         workgroups and minimize                                                       the rewiring or the network                                                   as the result?                                                      System    Will the majority of the                                                                       Adds to cost, takes                                management                                                                              corporate servers be placed                                                                    longer time to install.                                      in a centralized location,                                                    such as a data center, or will                                                the majority of servers be                                                    distributed to individual                                                     departments?                                                                  Do critical network                                                           components need to be                                                         managed from a centralized                                                    location or can they be                                                       managed from multiple                                                         access points on the                                                          network?                                                            Criticality /                                                                           How much up-time is                                                                            Adds to cost for                                   availability                                                                            required?        installation and                                             Is 7 × 24 availability required,                                                         maintenance.                                                 or normal work hours?                                                         Is it necessary to install                                                    redundant WAN links for                                                       fault tolerance?                                                    Network security                                                                        How secure does the Web                                                                        This is only a                                               server need to be and how                                                                      requirement for                                              secure do other attached                                                                       Internet/Intranet                                            networks need to be from                                                                       applications.                                                internal access?                                                    ______________________________________                                    

Once the constraints and tradeoffs are understood and qualities selectedfor weighting relative to other qualities, the method and form by whichweights are applied is determined. In one embodiment, weights areexpressed as a unit-less integer between selected minimum and maximumvalues (e.g. 0 and 100) for each of quality that is to be weighted. Twoqualities may then be compared by comparing their weights algebraically.For example, if a cost quality has a weight of 100, and a performancequality has a weight of 50, then cost is twice as important asperformance.

Default weights are then assigned to the selected qualities, and areincorporated into the appropriate rules of the expert system 114,further described below. In one embodiment, the qualities to beweighted, and their default values are:

    ______________________________________                                        Quality             Weight                                                    ______________________________________                                        cost level          80                                                        performance level   40                                                        expandability /scalability level                                                                  10                                                        system management level                                                                           10                                                        criticality / availability level                                                                  20                                                        network security level                                                                            40                                                        ______________________________________                                    

User Questionnaire

Referring again to FIG. 1, the quality driven expert system of thepresent invention includes an interactive questionnaire 112 which guidesthe user through a set of screens containing questions and answersconcerning the system under development. FIG. 6 illustrates a samplescreen 600 in the user questionnaire 112. Each screen contains onequestion 601 and a set of possible answers 603 with a check box or radiobutton beside each answer. Users click on an answer to select it.Multiple answers are supported. Each answer preferably has a description605 and may include a short example, to make it clear to the user whatimplications the answer has, and thereby ensure the user's understandingof the meaning and significance of the question. When the user hasanswered a question, they click the next button to proceed to the nextquestion. At any time they can also press the back button to backtrackand revisit a previous question. Questions are preferably arranged intosections, and the screen 600 further indicates the particular sectionnumber and heading of questions being answered and the question number.

Example questions asked by the architecture advisor 104 are listedbelow. One or more questions are grouped under the section heading inwhich they appear, and the list of possible responses for each questionis listed.

Objective Section

What type of network do you need to configure? (choose one)

Workgroup LAN

Corporate backbone

Branch office

Enterprise network

Remote users

World Wide Web service

Do you expect your network to be more user-intensive orbandwidth-intensive? (choose one)

User-intensive

Bandwidth-intensive

Both

Neither

Workgroup Networking Section

Do you have a LAN strategy that you need to preserve? (choose one)

Ethernet

Token Ring

ARCnet

No

Do you want to build a wireless LAN for mobile users? (choose one)

Yes

No

One exemplary set of questions for the architecture advisor 104 islisted in Appendix C.

The user's answers to the user questionnaire 112 are encoded in a factlist as a set of (attribute, value) pairs, the value defined by theuser's answer, the attribute associated with a fact representing thequestion. For example, if the user chooses "Workgroup LAN", "UserIntensive", "ARCnet", and "Yes" to the foregoing questions, then thefact list would contain:

(FACT₋₋ NET₋₋ TYPE, WORKGROUP)

(FACT₋₋ NET₋₋ USAGE, USER)

(FACT₋₋ LAN₋₋ STRATEGY, ARCNET)

(FACT₋₋ WIRELESS₋₋ LAN, YES).

Questions are chosen by the experts from which the qualities may beinferred by the expert system, as well as to elicit the systemrequirements. The qualities will be orthogonal to the greatest extentpossible, but the questions need not be. Questions are designedpreferably after the qualities have been determined.

The questions may also be used to establish the relative importance ofthe requirements, and thereby the weights of the required qualities, forexample by relative comparison. FIG. 7 illustrates a question screen 700including a question 701 asking the user to identify the most importantsuccess factor 703 for the network. These types of ranking or comparisoncan be repeated until all qualities for which weights are applicable areordered by the user. Weights are computed by and assigned to the correctqualities by the rules in the expert system 114. The weights associatedwith these qualities are stored in the required qualities table, alongwith the quality ID and quality value. The remaining qualities areassigned their default weights, which are not controlled by the user butby the system administrator.

The question format illustrated in FIG. 7 is but one way to obtain userweights. An alternative approach is multi-wise comparisons. Thefollowing question illustrates this method:

Question: In what order do you want to optimize on security, performanceand cost?

Security--cost--performance

Security--performance--cost

Performance--cost--security

Performance--security--cost

Cost--performance--security

Cost--security--performance

Selection by the user of one of these options determines the ordering ofthe qualities, and the expert system 114 can then determine the relativeweights.

Expert System

The expert system 114 converts the questionnaire answers 115 to a set ofrequired qualities 124. The expert system 114 includes a database ofrules 118 and a forward chaining inference engine 116. Generally, therules 118 are structured to associate facts from the fact list withspecific qualities in the quality space, and to derive the weights forany qualities for which weights are applicable. The rules are derived bynormal knowledge engineering on the application domain in conjunctionwith determining the appropriate qualities of the domain. Once encodedthey need not be modified to incorporate new candidates into the outputspace of the system.

In a preferred embodiment, the rules are stored in three tables in thedatabase. Table 8 defines these rule tables 118 in more detail.

                  TABLE 8                                                         ______________________________________                                        Rule Tables 118                                                               Data Entity                                                                            Data Attribute                                                                           Attribute Description                                     ______________________________________                                        Rule.sub.-- Base                                                                       rulebase.sub.-- id                                                                       Integer uniquely identifying a                                                comprehensive set of rules.                                        rulebase.sub.-- name                                                                     Short name of a rule base.                                         description                                                                              Long name of the rule base.                               Rule     rulebase.sub.-- id                                                                       Integer uniquely identifying a                                                comprehensive set of rules. It                                                links to the Rule.sub.-- Base table.                                          Part of the composite primary                                                 key.                                                               rule.sub.-- id                                                                           Integer uniquely identifying one                                              rule within a rule base. Part of                                              the composite primary key.                                         rule.sub.-- name                                                                         Textual name of this rule.                                         description                                                                              Commentary on the rule, for                                                   user display and diagnostic.                                       priority   Integer that defines the order in                                             which this rule will be applied,                                              compared with other rules.                                Rule.sub.-- Part                                                                       rulebase.sub.-- id                                                                       Integer uniquely identifying a                                                comprehensive set of rules. Part                                              of the composite primary key.                                                 It links to the Rule.sub.-- Base and                                          Rule tables.                                                       rule.sub.-- id                                                                           Integer uniquely identifying one                                              rule within a rule base. Part of                                              the composite primary key.                                         rulepart.sub.-- id                                                                       Integer uniquely identifying this                                             rule part as a component within                                               a single rule.                                                     side       `L` or `R`, indicating whether this                                           rule part is a component of the                                               LHS (left-hand side, or IF part) of                                           an expert system rule, or the RHS                                             (right-hand side, or THEN part)                                    attribute  The name of a fact.                                                value      If this rule part is an LHS, then                                             this is the value to which the                                                attribute is compared, depending                                              on the operator. If this rule part                                            is an RHS, then this is the value                                             assigned to the fact, if this rule                                            fires.                                                             operator   `=`, `|=`, or `IN` for LHS.                                                   For an RHS, this is always `=`,                                               indicating assignment of a new                                                fact.                                                     ______________________________________                                    

The Rule₋₋ Base table defines the names and unique IDs for all "rulebases." A rule base is a specific application domain, and may beassociated with any number of specific rules. For example, there may berule bases for network architecture selection, project plan management,task selection for projects, and so on for any variety of differentapplication domains. Inclusion of the rule base table further enhancesthe flexibility of the present invention since multiple differentapplication domains may be operated upon in a single implementation,each having its own rule base and set of rules and qualities. Thus asingle project (such as the design and implementation of computersystem) may use one system having rule bases for selection of networkarchitectures, selection of tasks for implementating an a computersystem, selection of software and hardware components, and the so forth.

A Rule table defines the names and unique IDs for individual ruleswithin a rule base. These are the particular rules which define therelationships between the user's answers and the qualities. Each rule islinked to a specific rule base by a rule base ID, and has a descriptiondescribing the purpose, use, or derivation of the rule, and a priority.The priority is used in an agenda to determine the firing order of therules.

Each rule is comprised of an antecedent and consequent. These parts aredefined in a Rule₋₋ Part table that contains the text of each rule, withseparate records for the IF part and THEN part of the rule. Each rulepart is linked to its rule base by the rule base ID, and to its rule bythe rule ID. A rule part has a side attribute indicating whether therule part is the left hand side (antecedent) or right hand side(consequent) of the rule. Each rule part has an attribute which is thename of a fact as it appears in the fact list upon which the rule partoperates. The value of the rule part is either the value of the fact tobe matched if the rule part is the antecedent or the value to be set ifthe rule part is the consequent. Rule antecedents may also operate onthe value of a quality for encoding those rules that operate on aquality directly. This allows required qualities to be derived fromother qualities, rather than merely from facts. Finally, each rule parthas an operator defining the operation of that part of the rule. Theoperators for the antecedent rule part are "=", "|=", and "IN". Forconsequent rule parts, which are always assignments, the operator

The expert system 114 maps the facts from the fact list onto thequalities of the quality space through the use of a new "setqual" verbin the consequent rule parts which is used to assign values to qualities(conventional expert systems typically are limited to setting values tofacts). The setqual verb takes as its arguments one of the qualitiesdefined in the quality space, and a value, which may be a token, level,or boolean. Here is an example rule using the setqual verb:

    ______________________________________                                        If         Application type! = World Wide Web site                                      and  Internet user! = Remote users                                  Then       setfact Internet! = True                                                      setqual Dispersed! = True                                          ______________________________________                                    

Referring again to Table 8, the required qualities derived by the expertsystem 114 are stored in the required qualities table, as describedabove. The required quality has a quality value which can be set by avalue specified in the setqual verb of some rule. When a rule with asetqual verb is fired, the expert system 114 takes the name of thequality from the setqual and retrieves the associated quality ID fromthe quality table. The expert system 114 stores the (quality ID, qualitytextual value) pairs in the required qualities table, where they areavailable to the associative matching algorithm 120 for subsequentmatching with the qualities of the network architectures.

An example of the implementation is as follows. Assume the rules of theexpert system 114 include:

    ______________________________________                                        Rule 370                                                                      If        Application type! = World Wide Web site                                      and  Internet user! = Remote users                                   Then      setfact Internet! = True                                                      setqual Dispersed! = True                                           Rule 380                                                                      If        Application type! = World Wide Web site                                      and  Internet user! = Corporate users                                Then      setfact Intranet! = True                                                      setqual Dispersed! = True                                           Rule 390                                                                      If        Application type! = World Wide Web site                                      and  Internet user! = Both                                           Then      setfact Intranet! = True                                                      setqual Dispersed! = False                                          ______________________________________                                    

The rule tables 118 would be encoded as:

                  TABLE 9                                                         ______________________________________                                        Example Rule.sub.-- Base Table                                                rulebase.sub.-- id                                                                    rulebase.sub.-- name                                                                        description                                             ______________________________________                                        1       Architecture Advisor                                                                        Architecture selection rule base                        2       Task Advisor  Task advisor rule base                                  3       Network Advisor                                                                             CSCL network selection rule base                        ______________________________________                                    

Here, the Rule₋₋ Base table identifies three distinct rule bases. Thefollowing Rule table lists the rule names with the description of theirantecedents and their firing priority.

                  TABLE 10                                                        ______________________________________                                        Example Rule Table                                                                    rule                                                                  rulebase.sub.-- id                                                                    .sub.-- id                                                                           rule.sub.-- name                                                                         description  priority                               ______________________________________                                        3       370    Web Remote If Web and remote                                                                          1                                                     Users      users only                                          3       380    Web Corporate                                                                            If Web and corporate                                                                       1                                                                users only                                          3       390    Web Both   If Web and corporate +                                                                     1                                                                remote users                                        ______________________________________                                    

Each of these rules is encoded in the Rule₋₋ Part table as follows:

                  TABLE 11                                                        ______________________________________                                        Example Rule.sub.-- Part                                                      rule- rule.sub.--                                                                          rule-                                                            base.sub.-- id                                                                      id     part.sub.-- id                                                                        side attribute                                                                             value   operator                            ______________________________________                                        3     370    1       L    Application                                                                           World Wide                                                                            =                                                             type    Web site                                    3     370    2       L    Internet                                                                              Remote  =                                                             user    users                                       3     370    3       R    X Internet                                                                            True    =                                   3     380    1       L    Application                                                                           World Wide                                                                            =                                                             type    Web site                                                                              =                                   3     380    2       L    Internet                                                                              Corporate                                                                             =                                                             user    users                                       3     380    3       R    X Intranet                                                                            True    =                                   3     390    1       L    Application                                                                           World Wide                                                                            =                                                             type    Web site                                    3     390    2       L    Internet                                                                              Both    =                                                             user                                                3     390    3       R    X Intranet                                                                            True    =                                   ______________________________________                                    

Given these encoded rules, assume that the user's answers to some set ofquestions produced the following facts:

Application Type="World Wide Web site"; and,

Internet user="Remote"

Based on these facts and the rules listed above, the expert system 114determines that the quality "Dispersed" will be "True." This is encodedas a required quality in the required qualities table:

                  TABLE 12                                                        ______________________________________                                        Example Required Qualities Table                                                     qual.sub.-- id                                                                      qual.sub.-- value                                                ______________________________________                                               400   True                                                             ______________________________________                                    

Appendix D provides another more detailed example of the determinationof required qualities from the user questionnaire.

The expert system 114 operates using the following operationalalgorithm:

    ______________________________________                                        While there are rules in the agenda                                           Select a rule from the agenda, based on its priority                          Fire the rule. This may involve adding another fact to the                    fact list, setting a quality in the Required.sub.-- Qualities                 table, or performing a side effect.                                           Remove the rule from the agenda                                               Validate the agenda (i.e., remove any rules that are no                       longer valid)                                                                 For all rules in the rule list:                                               Select qualified rules (i.e., their left-hand side or "IF"                              part matches against the facts in the fact list)                              and put them in the agenda;                                         End While                                                                     ______________________________________                                    

As described above, the agenda is the list of rules that remain to befired, the rule list is the list of all rules in the appropriate rulebase (from the Rules table), and the fact list is the encoded set ofanswers 115. The expert system 114 traverses the agenda and fires therules contained therein. These rules may set facts or qualities. Oncefired a rule is removed from the agenda. Validation of rules eliminatesfrom consideration those rules which have unsatisfied antecedents. Uponcompletion of the agenda, the required qualities will all be listed inthe required qualities table.

The various table definitions described herein for the architectures,qualities, and rules are but one implementation of the presentinvention. Those of skill in the art of software engineering and expertsystem design will readily appreciate that these various aspects of thepresent invention may be implemented in various other structures, notlimited to the relational tables described for this implementation.

Associative Matching Algorithm

Referring now to FIG. 8, there is shown a flow diagram of the overalllogic of the associative matching algorithm 120. Generally, theassociative matching algorithm 120 matches the set of required qualitiesand weights output by the expert system 114 with the actual qualitiesassociated with selected output entities in the output space, andidentifies those entities that best match the required qualities. In oneembodiment, the associative matching algorithm 120 traverses 800 throughthe set of output entities, such as the architectures table of thearchitecture library 108. For each (or alternatively, for selected ones)of the entities, the associative matching algorithm 120 compares 801each of the required qualities to a corresponding quality of the entity.This is done by computing 802 a match score between the required qualityand the quality of the output entity, based on the values of thesequalities, and the weight of the required quality, if any.

A total score of the output entity is maintained and updated 803 eachtime a required quality match score is determined. For each entity, aselection explanation is also maintained and updated 804. This istextual description that specifies the required quality being matched,and the degree to which the quality value of the corresponding qualityof the output entity matches the required quality value.

When the set of output entities is evaluated, they are sorted 805 bytheir total scores, and the N (e.g. 10) best ranking entities arereturned 806 to the user for review and evaluation. The selectionexplanation of each such entity is also available to allow the user tounderstood why the entity was selected.

In the embodiment of the architecture advisor 104, the associativematching algorithm 120 matches the required qualities of a networkarchitecture to the qualities of selected architectures in thearchitecture library 108, to produce an architecture score for thenetwork architecture. It then ranks the network architectures in orderof their architecture scores, and provides a selection explanation thescoring of each architecture.

Where the qualities are hierarchical, the associative matching algorithm120 uses recursive logic to match the required qualities with the objectqualities. It uses the weight of a required quality in computing thescore for each match.

One embodiment of the associative matching algorithm 120 for evaluatingnetwork architectures is described in the following pseudo-code:

    ______________________________________                                        Main Routine:                                                                 Input:                                                                              List of required qualities (Required Qualities table)                         List of architectures (by architecture ID)                              List of object qualities for each architecture                                (Architecture Quality table)                                                  N , the number of best candidate architectures to return                      Output:                                                                             List of the N best architectures selected                                     Architecture score and selection explanation for each                   selected architecture                                                         Operation:                                                                    Loop over list of architectures                                               Set architecture.sub.-- score = 0                                             Loop over list of top-level (parent) required qualities                       (Required.sub.-- Qualities table)                                             If architecture has a corresponding object quality //                         same Qual ID                                                                  Call routine MatchQualities                                                             Input: required.sub.-- quality, object.sub.-- quality                         Output: match.sub.-- score,                                                     match.sub.-- explanation                                          Set architecture.sub.-- score += match.sub.-- score                           Set architecture.sub.-- select.sub.-- explanation +=                                  match.sub.-- explanation                                              End if                                                                        End Loop over required qualities                                              End Loop over architectures                                                   Sort list of architectures based on architecture score                        Return from routine, returning architecture.sub.-- score and selection        explanation for each of the N best architectures                              Routine MatchQualities:                                                       Input:                                                                              required.sub.-- quality; (quality.sub.-- id from Required                     Qualities)                                                                    object.sub.-- quality; with same quality.sub.-- id                      Output:                                                                             match.sub.-- score; the score for how well these qualities match              match.sub.-- explanation; textual description of the quality and              the match                                                               Operation:                                                                    If required.sub.-- quality is a "symbol" quality                                                     // symbol quality                                      If required.sub.-- quality.value satisfies object.sub.-- quality.operator               applied to object.sub.-- quality.value                              Set match.sub.-- score = required.sub.-- quality.weight                       Set match.sub.-- explanation = quality.description + "matches"                Else                   // mismatch                                            Set match.sub.-- score = - (required.sub.-- quality.weight)                   Set match.sub.-- explanation = quality.description + "does not                match"                                                                        End If                                                                        Return from MatchQualities routine                                            Else If this is a level quality                                                                      // numeric                                             If required.sub.-- quality.value satisfies object.sub.-- quality.operator     3                                                                                       applied to object.sub.-- quality.value                              Set match.sub.-- score = required.sub.-- quality.weight                       Set match.sub.-- explanation = quality.description + "matches"                Else                   // mismatch                                            Set match.sub.-- score = - (required.sub.-- quality.weight)                   Set match.sub.-- explanation = quality.description +                          "does not match"                                                              Return from MatchQualities routine                                            Else If this is a "parent" quality                                                                   // has children qualities                              Set match.sub.-- score = 0                                                    Loop over list of child required.sub.-- qualities for this required           quality                                                                       (in Quality table)                                                            If the architecture has a corresponding child object.sub.-- quality           Call routine MatchQualities recursively                                               Input: child required.sub.-- quality, child                                     object.sub.-- quality                                                       Output: child.sub.-- match.sub.-- score,                                        child.sub.-- match.sub.-- description                               Set match.sub.-- score = match.sub.-- score +                                         child.sub.-- match.sub.-- score                                       Set match.sub.-- explanation = match.sub.-- explanation +                             child.sub.-- match.sub.-- explanation                                 Endif                                                                         End Loop over required child qualities                                        Return from MatchQualities routine                                            ______________________________________                                    

As described above, once the expert system 114 converts the user'squestions into required qualities, the associative matching algorithm120 is called, passing the table of required qualities, the entire listof architectures (Architecture table), and the set of object qualitiesfor each architecture (Architecture Qualities table).

The main routine computes an architecture score for each networkarchitecture based on the match score between each required quality andthe corresponding (same quality ID) object qualities of the networkarchitecture. The main routing also sorts the network architecturesbased on their architecture scores, and finally returns the top Narchitectures along with their scores and selection explanations. FIG.9, described below, illustrates a sample screen 900 showing the list 901of selected network architectures, each with an architecture score 903.

The outer loop in the main routine cycles over the entire set ofarchitectures. The inner loop cycles over the required qualities. If thearchitecture has an object quality that corresponds to the requiredquality (based on the same quality ID), then the routine MatchQualitiesis called. Note that not all qualities from the quality table needappear in the required qualities table nor does each networkarchitecture have a corresponding quality to the required qualities.

MatchQualities performs the computation of the closeness of the matchbetween a required quality and an object quality of an output entity,such as a network architecture. MatchQualities is passed the requiredquality and the object quality. MatchQualities returns a numeric matchscore representing the goodness of match and a textual explanationdescribing the quality or degree of the match (or mismatch). The matchscore is applied to the overall score for this architecture, and thetextual explanation of the match is concatenated to the end of theselection explanation for this architecture.

The MatchQualities routine contains three main branches, only one ofwhich gets executed, depending of the type of the required quality. If arequired quality is a symbol quality, then the first branch is executed.In this case the value of the required quality must be an atomic symbol,the value of the object quality is a list of one or more symbols, andthe object quality operator is either "in" or "not in". If the matchinglogic determines that the object quality operator is "in", then therequired quality value must be found within the list of object qualityvalues. If the object quality operator is "not in" then the requiredquality value must not be found within the list of object qualityvalues. Both these cases constitute a match, and the resulting matchscore is the positive weight of the required quality. If a mismatch isfound, the resulting match score is the negative of the required qualityweight. The selection explanation is the quality textual description(qualities description attribute of Quality table) appended with thestring "matches" or "does not match", as appropriate.

The second branch of the MatchQualities routine contains processinglogic for level type qualities. Level qualities are numeric, and theobject quality operator consists of one of the numeric comparisonoperators "=", "|=", ">=", or "<=". The matching logic determineswhether the relationship between the object quality and the requiredquality as specified by the comparison operator is satisfied. Forexample, if the quality is "criticality level", the required qualityvalue is "3", the object quality value is "4", and its operator is ">=",then the match expression reads:

Architecture X is applicable when "criticality₋₋ level" ">=" "4". Sincethe value of the required quality is "3", a mismatch is found.

For level qualities the selection explanation is formed from the qualitytextual description appended with a string which is descriptive of thematch just like for symbol qualities.

The third branch of the MatchQualities routine contains processing logicfor parent qualities. Parent qualities form the branching nodes of thehierarchical quality tree. The main routine only processes qualities atthe top level in the hierarchy. When passed a parent quality, theroutine MatchQualities loops over all the children qualities within thebranch and recursively calls itself to evaluate the match score for eachchild. The children qualities are either level or symbol qualities(though in other implementation they may be parent qualities formultiple level hierarchies). The score for the parent quality is thesummation of match scores for each of the children qualities beneaththat parent.

The match score for level qualities may be computed in various ways. Inone embodiment, the match score for level quality matches is based on aboolean match operator. Level qualities receive a score of +(weight) fora match and -(weight) for a mismatch. Continuing the previous example,the object quality value and operator (>=4) did not satisfy the requiredquality (3), so the score is the negative of the weight of the requiredquality.

In an alternative embodiment using fuzzy logic, the match score is afunction of the difference between the quality value of the requiredquality and the quality value of the network object quality. Preferably,the function multiplies the difference between the quality values by theweight of the required quality, though other functions may be used. Forexample, if a required quality had a quality value of 5, and a qualityweight of 10, and the object quality had a value of 2, and a qualityoperator of ">=" then there is partial match; the match score is(3-5)*10 or-20.

Table 13 provides a sample of the data generated by the associatedmatching algorithm 120.

                  TABLE 13                                                        ______________________________________                                        Example Ranked Architectures                                                       Architecture                                                             Score                                                                              Name        Selection Explanation                                        ______________________________________                                        45   B057: Three-tier                                                                          System Management Type                                                                           matches                                        clustered DB                                                                              Cost Level         mismatch                                                   OLTP Transaction Volume Level                                                                    matches                                                    Availability Level matches                                                    Data Distribution Level                                                                          matches                                                    Performance Level  matches                                                    Network Traffic Profile Type                                                                     matches                                                    Legacy System Interface Type                                                                     matches                                   41   B059: Remote                                                                              System Management Type                                                                           matches                                        Three-tier  Cost Level         mismatch                                       clustered DB                                                                              OLTP Transaction Volume Level                                                                    matches                                                    Availability Level mismatch                                                   Data Distribution Level                                                                          matches                                                    Performance Level  matches                                                    Network Traffic Profile Type                                                                     matches                                                    Legacy System Interface Type                                                                     mismatch                                  33   B045: Remote                                                                              System Management Type                                                                           matches                                        DB gateway  Cost Level         matches                                        server      OLTP Transaction Volume Level                                                                    mismatch                                                   Availability Level mismatch                                                   Data Distribution Level                                                                          mismatch                                                   Performance Level  matches                                                    Network Traffic Profile Type                                                                     matches                                                    Legacy System Interface Type                                                                     matches                                   31   B025: Remote                                                                              System Management Type                                                                           mismatch                                       Three-tier  Cost Level         mismatch                                       distributed app                                                                           OLTP Transaction Volume Level                                                                    matches                                                    Availability Level matches                                                    Data Distribution Level                                                                          matches                                                    Performance Level  mismatch                                                   Network Traffic Profile Type                                                                     mismatch                                                   Legacy System Interface Type                                                                     mismatch                                  ______________________________________                                    

Each network architecture is identified by its name and has itsarchitecture score. The selection explanation for each quality lists thequality description with the appropriate explanation derived from thematch score. This explanation enables to the user to understand themeaning behind the architecture score, and further allows the user tocompare the fitness of different architectures to individual qualities.For example, the top ranked network architecture does not fully satisfythe Cost quality, indicating that the cost is too high. The user canthen identify the B045: Remote DB gateway server network architecture,which had a lower architecture score of 33, but did fully satisfy theCost quality. Thus, the user may decide to implement this networkarchitecture should budgetary considerations become predominant.

The selection explanations are different from conventional expert systemexplanation abilities. Conventionally, expert systems provideexplanations that describe only the reasons (i.e. the rules) whichcaused the final entity to be selected, for example, the rules whichfired to determine a diagnosis from a set of symptoms. Because theexpert system of the present invention is not used to select the outputentities directly, but only the qualities, the selection explanationsdescribe the degree to which a quality was satisfied, and not whichrules were invoked to select an entity.

After the associative matching algorithm 120 ranks the scoredarchitectures for the network architecture, the user can review each ofthe architectures for further information. The user can specify how many(the number N) of the highest-scoring architectures to view, say 5 or10. The user does not necessarily need to select the highest rankedarchitecture, as discussed above. As illustrated in FIG. 9, the best Narchitectures are presented in a list box 901 in order of decreasingrank (905), along with the architecture score 903 for each one. The usercan click on one architecture and view the selection explanation 907.The selection explanation 907 indicates the degree of match between thequalities of the selected network architecture and the requiredqualities. The user may view the architecture diagram by clicking theview architecture button, along with its detailed description,advantages, and disadvantages. After contemplating each of the toparchitectures, the user may click on one from the list and hit theselect architecture button to link this architecture to a project orother files. The selected architecture may be linked to a project simplyby inserting its architecture ID into a selected architecture ID fieldin a row corresponding to the project in a projects table.

In summary, the present invention provides a quality driven expertsystem that operates to derive a self-describing quality description ofa desired output from a set of case specific facts. These qualities arethen matched against the qualities of a predefined set of outputs inorder to select a number of the outputs that best match the qualitydescription. The present invention may be applied to any variety ofapplication domains where the outputs may be described by a set ofqualities, and where a set of rules may be defined to derive requiredqualities from input facts. One embodiment of the present inventionoperates in the domain of selecting network architectures for computernetworks. Other application domains may be constructed in accordancewith the principles of the present invention.

    ______________________________________                                        APPENDIX A - LISTING OF NETWORK ARCHITECTURES                                 Architecture Name                                                                         Architecture Description                                          ______________________________________                                        W000:Remote Workgroup client/server computing: Client                         presentation                                                                              workstations provide only presentation services                               and logic. A11 other tasks are performed by the                               server.                                                           W010:Distributed App                                                                      Workgroup client/server computing: Business                                   rule processing is distributed between the clients                            and the server.                                                   W015:Three-tier                                                                           Workgroup client/server computing: Three-                                     tiered architecture.                                              W020:Remote DB                                                                            Workgroup client/server computing: All                            access      computing except database services is performed                               by the client.                                                    W025:DB gateway                                                                           Workgroup client/server computing: All                            server      database requests are processed through a                                     centralized database gateway server.                              W030:Distributed DB                                                                       Workgroup client/server computing: Data is                                    distributed between the clients and the server.                               Some of the data is stored on the database server                             and other data is stored on the client in a local                             database.                                                         W040:File server                                                                          Workgroup client/server computing: Clients                                    perform all computing, including database                                     services. The server provides simple file I/O                                 services.                                                         W050:Remote Workgroup client/server computing with legacy                     presentation                                                                              data: Client workstations provide only                             legacy!    presentation services and logic. All other tasks                              are performed by the server, which also receives                              updated data from legacy systems.                                 W060:Distributed App                                                                      Workgroup client/server computing with legacy                      legacy!    data: Application logic is distributed between the                            clients and the server.                                           W065:Three-tier                                                                           Workgroup client/server computing with legacy                      legacy!    data: Three-tiered architecture.                                  W067:Three-tier                                                                           Workgroup client/server computing with legacy                     hybrid      system: Three-tiered architecture with the legacy                  legacy!    system acts as a database server.                                 W070:Remote DB                                                                            Workgroup client/server computing with legacy                     access      data: All computing except database services are                   legacy!    performed by the clients.                                         W080:Distributed DB                                                                       Workgroup client/server computing with legacy                      legacy!    data: Data is distributed between the clients and                             the server. Some of the data is stored on the                                 database server and other data is stored on the                               client in a local database.                                       W090:File server                                                                          Workgroup client/server computing with legacy                      legacy!    data: Clients perform all computing, including                                database services. The server provides simple file                            I/O services.                                                     W100:Distributed                                                                          Workgroup client/server computing with legacy                     presentation  legacy!                                                                     system: Old legacy applications are wrapped with                              new GUI interfaces. Client workstations perform                               only presentation services while the legacy                                   system processes presentation logic, rule and data                            services.                                                         W103:Legacy Workgroup client/server computing with legacy                     transaction system: Client workstations perform only                           legacy!    presentation services and logic while the legacy                              system processes all business transactions and                                data services.                                                    W106:DB gateway                                                                           Workgroup client/server computing with legacy                     server  legacy!                                                                           system: All database requests are processed                                   through a centralized database gateway server.                                The legacy system services all database requests.                 C000:Remote Corporate client/server computing: Client                         presentation                                                                              workstations provide only presentation services                               and logic. All other tasks are performed by the                               server.                                                           C010:Distributed App                                                                      Corporate client/server computing: Application                                logic is distributed between the clients and the                              server.                                                           C020:Three-tier                                                                           Corporate client/server computing: Three-tiered                               architecture.                                                     C030:Remote DB                                                                            Corporate client/server computing: All                            access      computing except database services are performed                              by the clients.                                                   C040:DB gateway                                                                           Corporate client/server computing: All database                   server      requests are processed through a centralized                                  database gateway server.                                          C050:Distributed                                                                          Corporate client/server computing: Data is                        DB          distributed across multiple servers.                              C055:Clustered DB                                                                         Corporate client/server computing: Data is                                    shared among a cluster of database servers.                       C060:Three-tier dist.                                                                     Corporate client/server computing: Three-tiered                   app. server architecture with business rule processing                                    distributed among a cluster of application servers.               C065:Three-tier dist.                                                                     Corporate client/server computing: Three-tiered                   app & DB    architecture with business rule processing                                    distributed among a cluster of application servers.                           The data is also distributed across multiple                                  database servers.                                                 C067:Three-tier                                                                           Corporate client/server computing: Three-tiered                   clustered DB                                                                              architecture with data shared among a cluster of                              database servers.                                                 C070:Fault-tolerant                                                                       Corporate client/server computing: A fault-                       system      tolerant system provides high availability                                    through redundant network, data and CPU.                          C080:Distributed                                                                          Corporate client/server computing with legacy                     presentation                                                                              system: Old legacy applications are wrapped with                   legacy!    new GUI interfaces. Client workstations perform                               only presentation services while the legacy                                   system processes presentation logic, rule and data                            services.                                                         C085:Legacy trans-                                                                        Corporate client/server computing with legacy                     action  legacy!                                                                           system: Client workstations perform only                                      presentation services and logic while the legacy                              system processes all business transactions and                                data services.                                                    C090:Remote presen-                                                                       Corporate client/server computing with legacy                     tation  legacy!                                                                           data: Client workstations provide only                                        presentation services and logic. All other tasks                              are performed by the server, which also receives                              updated data from legacy systems.                                 C100:Distributed                                                                          Corporate client/server computing with legacy                     App  legacy!                                                                              data: Application logic is distributed between the                            clients and the server.                                           C110:Three-tier                                                                           Corporate client/server computing with legacy                      legacy!    data: Three-tiered architecture.                                  C115:Three-tier hybrid                                                                    Corporate client/server computing with legacy                      legacy!    system: Three-tiered architecture with the legacy                             system acts as a database server.                                 C117:Three-tier                                                                           Corporate client/server computing with legacy                     hybrid dist.                                                                              system: Three-tiered architecture with the legacy                 app  legacy!                                                                              system acts as a database server. The business                                rule processing is distributed among a cluster of                             application servers.                                              C120:Remote DB                                                                            Corporate client/server computing with legacy                     access  legacy!                                                                           data: All computing except database services are                              performed by the clients.                                         C130:DB gateway                                                                           Corporate client/server computing with legacy                     server  legacy!                                                                           system: All database requests are processed                                   through a centralized database gateway server.                                The legacy system services all database requests.                 C140:Distributed                                                                          Corporate client/server computing with legacy                     DB  legacy! data: Data is distributed across multiple servers.                C145:Clustered                                                                            Corporate client/server computing with legacy                     DB  legacy! data: Data is shared among a cluster of database                              servers.                                                          C150:Three-tier                                                                           Corporate client/server computing with legacy                     dist. app.  data: Three-tiered architecture with business rule                server  legacy!                                                                           processing distributed among a cluster of                                     application servers.                                              C155:Three-tier                                                                           Corporate client/server computing with legacy                     dist. app & data: Three-tiered architecture with business rule                DB  legacy! processing distributed among a cluster of                                     application servers. The data is also distributed                             across multiple database servers.                                 C157:Three-tier                                                                           Corporate client/server computing with legacy                     clustered DB                                                                              data: Three-tiered architecture with data shared                   legacy!    among a cluster of database servers.                              C160:Data warehouse                                                                       Corporate client/server computing with legacy                      legacy!    data: The legacy data is reconfigured and                                     aggregated into an integrated central data                                    repository.                                                       C163:Data mart                                                                            Corporate client/server computing with legacy                      legacy!    data: The legacy data is reconfigured and                                     aggregated into one or more line-of-business data                             mart servers.                                                     C166:Hybrid Data                                                                          Corporate client/server computing with legacy                     warehouse   data: The legacy data is reconfigured and                          legacy!    aggregated into an integrated central data                                    repository. The data from the repository is further                           aggregated into specialized data mart servers.                    C170:Fault-tolerant                                                                       Corporate client/server computing with legacy                     system  legacy!                                                                           data: A fault-tolerant system provides high                                   availability through redundant network, data and                              CPU.                                                              B000:Distributed App                                                                      Branch office client/server computing:                                        Application logic is distributed between the                                  clients and the server.                                           B005:Remote Branch office client/server computing: Client                     presentation                                                                              workstations provide only presentation services                               and logic. All other tasks are performed by the                               server.                                                           B010:Three-tier                                                                           Branch office client/server computing: Three-                                 tiered architecture with local application server.                B020:Remote Branch office client/server computing: Three-                     Three-tier  tiered architecture with remote application                                   server.                                                           B025:Remote Branch office client/server computing: Three-                     Three-tier  tiered architecture with business rule processing                 dist app    distributed among a cluster of remote application                             servers.                                                          B030:Remote DB                                                                            Branch office client/server computing: All                        access      computing except database services are performed                              by the clients.                                                   B040:DB gateway                                                                           Branch office client/server computing: All                        server      database requests for a branch office are                                     processed through a local database gateway                                    server.                                                           B045:Remote DB                                                                            Branch office client/server computing: All                        gateway server                                                                            database requests are processed through a                                     centralized remote database gateway server.                       B050:Distributed                                                                          Branch office client/server computing: Data is                    DB          distributed across local and remote database                                  servers.                                                          B055:Clustered DB                                                                         Branch office client/server computing: Data is                                shared among a cluster of remote database                                     servers.                                                          B057:Three-tier                                                                           Branch Office client/server computing: Three-                     clustered DB                                                                              tiered architecture with data shared among a                                  cluster of remote database servers.                               B059:Remote Branch office client/server computing: Three-                     Three-tier  tiered architecture with business rule processing                 clustered DB                                                                              distributed among a cluster of remote application                             servers. The data is also distributed across                                  multiple remote database servers.                                 B060:Fault- Branch office client/server computing: A fault-                   tolerant system                                                                           tolerant system provides high availability                                    through redundant network, data and CPU.                          B070:Distributed                                                                          Branch office client/server computing with                        presentation                                                                              legacy system: Old legacy applications are                         legacy!    wrapped with new GUI interfaces. Client                                       workstations perform only presentation services                               while the legacy system processes presentation                                logic, rule and data services.                                    B075:Legacy transac-                                                                      Branch office client/server computing with                        tion  legacy!                                                                             legacy system: Client workstations perform only                               presentation services and logic while the legacy                              system processes all business transactions and                                data services.                                                    B080:Distributed                                                                          Branch office client/server computing with                        App  legacy!                                                                              legacy data: Application logic is distributed                                 between the clients and the server.                               B090:Three-tier                                                                           Branch office client/server computing with                         legacy!    legacy data: Three-tiered architecture with local                             application servers.                                              B095:Three-tier                                                                           Branch office client/server computing with                        hybrid  legacy!                                                                           legacy system: Three-tiered architecture with                                 local application servers and the legacy system                               acting as a database server.                                      B100:Remote Three-                                                                        Branch office client/server computing with                        tier  legacy!                                                                             legacy data: Three-tiered architecture with remote                            application server.                                               B103:Remote Three-                                                                        Branch office client/server computing with                        tier dist app  legacy!                                                                    legacy data: Three-tiered architecture with                                   business rule processing distributed among a                                  cluster of remote application servers.                            B105:Remote Three-                                                                        Branch office client/server computing with                        tier hybrid  legacy!                                                                      legacy system: Three-tiered architecture with                                 remote application server and the legacy system                               acting as a database server.                                      B107:Remote Three-                                                                        Branch office client/server computing with                        tier hybrid dist                                                                          legacy system: Three-tiered architecture with the                 app  legacy!                                                                              legacy system acts as a database server. The                                  business rule processing is distributed among a                               cluster of remote application servers.                            B110:Remote DB                                                                            Branch office client/server computing with                        access  legacy!                                                                           legacy data: All computing except database                                    services are performed by the clients.                            B120:DB gateway                                                                           Branch office client/server computing with                        server  legacy!                                                                           legacy system: All database requests for a branch                             office are processed through a local database                                 gateway server. The legacy system services all                                database requests.                                                B125:Remote DB                                                                            Branch office client/server computing with                        gateway server                                                                            legacy system: All database requests are                           legacy!    processed through a centralized remote database                               gateway server. The legacy system services all                                database requests.                                                B130:Distributed                                                                          Branch office client/server computing with                        DB  legacy! legacy data: Data is distributed across local and                             remote database servers.                                          B135:Clustered DB                                                                         Branch office client/server computing with                         legacy!    legacy data: Data is shared among a cluster of                                remote database servers.                                          B137:Three-tier                                                                           Branch office client/server computing with                        clustered DB                                                                              legacy data: Three-tiered architecture with data                   legacy!    shared among a cluster of remote database                                     servers.                                                          B139:Remote Three-                                                                        Branch office client/server computing with                        tier clustered                                                                            legacy data: Three-tiered architecture with                       DB  legacy! business rule processing distributed among a                                  cluster of remote application servers. The data is                            also distributed across multiple remote database                              servers.                                                          B140:Data mart                                                                            Branch office client/server computing with                         legacy!    legacy data: The legacy data is reconfigured and                              aggregated into one or more line-of-business data                             mart servers.                                                     B150:Data warehouse                                                                       Branch office client/server computing with                         legacy!    legacy data: The legacy data is reconfigured and                              aggregated into an integrated central data                                    repository.                                                       B153:Hybrid data                                                                          Branch office client/server computing with                        warehouse  legacy!                                                                        legacy data: The legacy data is reconfigured and                              aggregated into an integrated central data                                    repository. The data from the repository is further                           aggregated into specialized data mart servers.                    B160:Fault-tolerant                                                                       Branch office client/server computing with                        system  legacy!                                                                           legacy data: A fault-tolerant system provides high                            availability through redundant network; data and                              CPU.                                                              E000:Remote presen-                                                                       Enterprise client/server computing: Client                        tation      workstations provide only presentation services                               and logic. All other tasks are performed by the                               server.                                                           E010:Distributed App                                                                      Enterprise client/server computing: Application                               logic is distributed between the clients and the                              server.                                                           E020:Three-tier                                                                           Enterprise client/server computing: Three-tiered                              architecture.                                                     E030:Remote DB                                                                            Enterprise client/server computing: All                           access      computing except database services are performed                              by the clients.                                                   E040:DB gateway                                                                           Enterprise client/server computing: All database                  server      requests are processed through a database                                     gateway server.                                                   E050:Distributed                                                                          Enterprise client/server computing: Data is                       DB          distributed across multiple servers.                              E055:Clustered DB                                                                         Enterprise client/server computing: Data is                                   shared among a cluster of database servers.                       E060:Three-tier                                                                           Enterprise client/server computing: Three-tiered                  dist. app. server                                                                         architecture with business rule processing                                    distributed among a cluster of application servers.               E065:Three-tier                                                                           Enterprise client/server computing: Three-tiered                  dist. app & DB                                                                            architecture with business rule processing                                    distributed among a cluster of application servers.                           The data is also distributed across multiple                                  database servers.                                                 E067:Three-tier                                                                           Enterprise client/server computing: Three-tiered                  clustered DB                                                                              architecture with data shared among a cluster of                              database servers.                                                 E070:Fault-tolerant                                                                       Enterprise client/server computing: A fault-                      system      tolerant system provides high availability                                    through redundant network, data and CPU.                          E080:Distributed                                                                          Enterprise client/server computing with legacy                    presentation  legacy!                                                                     system: Old legacy applications are wrapped with                              new GUI interfaces. Client workstations perform                               only presentation services while the legacy                                   system processes presentation logic, rule and data                            services.                                                         E085:Legacy Enterprise client/server computing with legacy                    transaction system: Client workstations perform only                                      presentation services and logic while the legacy                              system processes all business transactions and                                data services.                                                    E090:Remote Enterprise client/server computing with legacy                    presentation                                                                              data: Client workstations provide only                             legacy!    presentation services and logic. All other tasks                              are performed by the server, which also receives                              updated data from legacy systems.                                 E100:Distributed                                                                          Enterprise client/server computing with legacy                    App  legacy!                                                                              data: Application logic is distributed between the                            clients and the server.                                           E110:Three-tier                                                                           Enterprise client/server computing with legacy                     legacy!    data: Three-tiered architecture.                                  E115:Three-tier                                                                           Enterprise client/server computing with legacy                    hybrid  legacy!                                                                           system: Three-tiered architecture with the legacy                             system acts as a database server.                                 E117:Three-tier                                                                           Enterprise client/server computing with legacy                    hybrid dist.                                                                              system: Three-tiered architecture with the legacy                 app  legacy!                                                                              system acts as a database server. The business                                rule processing is distributed among a cluster of                             application servers.                                              E120:Remote DB                                                                            Enterprise client/server computing with legacy                    access  legacy!                                                                           data: All computing except database services are                              performed by the clients.                                         E130:DB gateway                                                                           Enterprise client/server computing with legacy                    server  legacy!                                                                           system: All database requests are processed                                   through a centralized database gateway server.                                The legacy system services all database requests.                 E140:Distributed                                                                          Enterprise client/server computing with legacy                    DB  legacy! data: Data is distributed across multiple servers.                E145:Clustered                                                                            Enterprise client/server computing with legacy                    DB  legacy! data: Data is shared among a cluster of database                              servers.                                                          E150:Three-tier                                                                           Enterprise client/server computing with legacy                    dist. app.  data: Three-tiered architecture with business rule                server  legacy!                                                                           processing distributed among a cluster of                                     application servers.                                              E155:Three-tier                                                                           Enterprise client/server computing with legacy                    dist. app & DB                                                                            data: Three-tiered architecture with business rule                 legacy!    processing distributed among a cluster of                                     application servers. The data is also distributed                             across multiple database servers.                                 E157:Three-tier                                                                           Enterprise client/server computing with legacy                    clustered DB                                                                              data: Three-tiered architecture with data shared                   legacy!    among a cluster of database servers.                              E160:Data warehouse                                                                       Enterprise client/server computing with legacy                     legacy!    data: The legacy data is reconfigured and                                     aggregated into an integrated central data                                    repository.                                                       E163:Data mart                                                                            Enterprise client/server computing with legacy                     legacy!    data: The legacy data is reconfigured and                                     aggregated into one or more line-of-business data                             mart servers.                                                     E166:Hybrid Data                                                                          Enterprise client/server computing with legacy                    warehouse  legacy!                                                                        data: The legacy data is reconfigured and                                     aggregated into an integrated central data                                    repository. The data from the repository is further                           aggregated into specialized data mart servers.                    E170:Fault-tolerant                                                                       Enterprise client/server computing with legacy                    system  legacy!                                                                           data: A fault-tolerant system provides high                                   availability through redundant network, data and                              CPU.                                                              I000:Single-Tier                                                                          Internet computing: Single-tier information                       Info Service                                                                              services. The information is stored as HTML                                   documents and other static file types and                                     presented to the users directly through Web                                   browsers.                                                         I010:Two-Tier                                                                             Internet computing: Two-tier information                          Info Service                                                                              services. The information is stored in a database                             server and is retrieved when the user makes a                                 request through a Web browser.                                    I020:Three-Tier                                                                           Internet computing: Three-tier information                        Info Service                                                                              services. The information is retrieved from a                                 database and is processed through a set of server-                            side business rules before it is presented to the                             users.                                                            I030:Client-Centric                                                                       Internet computing: Client-centric single-tier                    Single-Tier Info                                                                          information services. The client Web browser                      Service     executes scripts (applets) downloaded from the                                server.                                                           I040:Client-Centric                                                                       Internet computing: Client-centric two-tier                       Two-Tier Info Service                                                                     information services. The client Web browser                                  executes scripts (applets) downloaded from the                                server. The scripts retrieves information from                                the back-end database server.                                     I050:Distributed                                                                          Internet computing: Distributed three-tier                        Three-Tier Info                                                                           information services. The client Web browser                      Service     executes scripts (applets) downloaded from the                                server. The business rules are distributed                                    between the browser scripts and back-end server.                  T000:Single-Tier                                                                          Intranet computing: Single-tier information                       Info Service                                                                              services. The information is stored as HTML                                   documents and presented to the users directly                                 through Web browsers.                                             T010:Two-Tier                                                                             Intranet computing: Two-tier information                          Info Service                                                                              services. The information is stored in a database                             server and is retrieved when the user makes a                                 request through a Web browser.                                    T020:Three-Tier                                                                           Intranet computing: Three-tier information                        Info Service                                                                              services. The information is retrieved from a                                 database and is processed through a set of server-                            side business rules before it is presented to the                             users.                                                            T030:Client-Centric                                                                       Intranet computing: Client-centric single-tier                    Single-Tier Info                                                                          information services. The client Web browser                      Service     executes scripts (applets) downloaded from the                                server.                                                           T040:Client-Centric                                                                       Intranet computing: Client-centric two-tier                       Two-Tier Info Service                                                                     information services. The client Web browser                                  executes scripts (applets) downloaded from the                                server. The scripts retrieves information from                                the back-end database server.                                     T050:Distributed                                                                          Intranet computing: Distributed three-tier                        Three-Tier Info                                                                           information services. The client Web browser                      Service     executes scripts (applets) downloaded from the                                server. The business rules is distributed between                             the browser scripts and back-end server.                          NW000:ThinWire                                                                            Low speed thinwire 10Base2 Ethernet LAN with                      Ethernet LAN                                                                              bus topology.                                                     NW010:10BaseT                                                                             Low speed 10Base-T Ethernet LAN connected by                      Ethernet LAN                                                                              Ethernet hubs.                                                    NW020:Token Ring                                                                          Low speed token ring LAN connected by token                       LAN         ring hubs.                                                        NW030:Wireless LAN                                                                        Low speed wireless LAN for desktop and mobile                                 computers.                                                        NW040:ARCnet                                                                              Low speed and low cost peer-to-peer LAN.                          LAN                                                                           NW050:100BaseT                                                                            High speed 100Base-T 100Mbps Ethernet LAN.                        LAN                                                                           NW060:100VG-                                                                              High speed 100VG-AnyLAN 100Mbps Ethernet                          AnyLAN      LAN.                                                              NW070:Switched                                                                            High Speed switched 10Base-T 10Mbps LAN.                          Ethernet LAN                                                                  NW080:Switched                                                                            High Speed switched Token Ring 4/16 Mbps                          Token Ring LAN                                                                            LAN.                                                              NW082:100BaseT                                                                            High speed 100Base-T 100Mbps Fast Ethernet                        Fiber Optic LAN                                                                           LAN with fiber optic cables.                                      NW084:Switched                                                                            High speed switched 100Base-T 100Mbps Fast                        100BaseT    Ethernet LAN with fiber optic cables.                             Fiber Optic LAN                                                               NW086:Switched                                                                            High speed switched 100Base-T 100Mbps Fast                        100BaseT Ethernet                                                                         Ethernet LAN.                                                     LAN                                                                           NW090:Switched                                                                            High speed switched 10/100Base-T Fast Ethernet                    10/100BaseT Ethernet                                                                      LAN.                                                              NW100:Switched                                                                            High speed switched 10/100Base-T Fast Ethernet                    10BaseT with                                                                              LAN with fiber optic cables.                                      Fiber Optic                                                                   NW105:ATM LAN                                                                             High speed Asynchronous Transfer Mode LAN.                        NC000:Simple                                                                              Simple Fast Ethernet backbone connected by                        Fast Ethernet                                                                             category 5 UTP or fiber optic cable.                              NC010:FDDI  Fiber Distributed Data Interface (FDDI) backbone                  Backbone    running at 100Mbps.                                               NC020:FDDI/ Fiber Distributed Data Interface (FDDI) backbone                  Central Admin                                                                             running at 100Mbps with a centralized                                         administration configuration.                                     NC050:FDDI with                                                                           Fiber Distributed Data Interface (FDDI)                           Switches    Backbone with Switches.                                           NC060:FDDI with                                                                           Fiber Distributed Data Interface (FDDI) backbone                  Switches/   and switches with centralized administration                      Central Admin                                                                             configuration.                                                    NC090:ATM with                                                                            ATM backbone switches with fiber optic links.                     Fiber Optic                                                                   NC100:ATM with                                                                            ATM backbone switches and fiber optic links                       Fiber Optic/                                                                              with centralized administration configuration.                    Central Admin                                                                 NC125:Switched                                                                            Switched 100Mbps Ethernet Backbone.                               Backbone                                                                      NC130:Switched                                                                            Switched 100Mbps Ethernet backbone with                           Backbone/   centralized administration configuration.                         Central Admin                                                                 NC145:ATM   ATM (Asynchronous Transfer Mode) backbone.                        Backbone                                                                      NC150:ATM   ATM Backbone with centralized administration                      Backbone/   configuration.                                                    Central Admin                                                                 NC180:Centra-                                                                             Centralized wireless LAN backbone.                                lized Wireless                                                                LAN                                                                           NC190:Multi-                                                                              Multi-point wireless LAN backbone.                                point Wireless                                                                LAN                                                                           NB000:Switched                                                                            Low speed branch office communication through                     Circuit: PSTN                                                                             PSTN.                                                             NB005:Dedicated/                                                                          High speed point-to-point branch office                           Leased Circuit                                                                            communication through dedicated/leased circuit.                   NB010:ISDN-BRI                                                                            Branch office communication through ISDB-BRI                                  (Basic Rate Interface).                                           NB015:ISDN-PRI                                                                            Branch office communication through ISDN-PRI                                  (Primary Rate Interface).                                         NB020: X.25 Low speed branch office communication through                                 switched network -X.25.                                           NB030:Frame Relay                                                                         High speed branch office communication                                        through packed switched network - Frame Relay.                    NB040:ATM   High speed branch office communication                                        through public ATM.                                               NB050:Satellite                                                                           Low speed branch office communication through                     Communication                                                                             satellites.                                                       NB060:Internet                                                                            Secured branch office communication through                                   the Internet (Virtual Private Network).                           NB105:Dedicated                                                                           High speed point-to-point branch office.                          Circuit with                                                                              communication through dedicated/leased circuit                    Redundancy  with redundant links through PSTN.                                NB110:ISDN-BRI                                                                            Branch office communication through                               with Redundancy                                                                           redundant ISDB-BRI (Basic Rate Interface) links.                  NB115:ISDN-PRI                                                                            Branch office communication through                               with Redundancy                                                                           redundant ISDB-PRI (Primary Rate Interface)                                   links.                                                            NB120:X.25 with                                                                           Low speed branch office communication through                     Redundancy  switched network -X.25 with redundant PSTN                                    links.                                                            NB130:Frame Relay                                                                         High speed branch office cominunication                           with Redundancy                                                                           through packed switched network - Frame Relay                                 with redundant ISDN links.                                        NB140:ATM with                                                                            High speed branch office communication                            Redundancy  through public ATM with redundant T1 links.                       NB150:Satellite                                                                           Low speed branch office communication through                     with Redundancy                                                                           satellites with redundant PSTN links.                             NB160:Internet with                                                                       Secured branch office communication through                       Redundancy  the Internet (Virtual Private Network) with                                   redundant ISDN links.                                             NE000:Enterprise                                                                          Classical enterprise networking with a centralized                Routing     router in a collapsed backbone configuration.                     NE010:Distributed                                                                         Classical enterprise networking with                              Routing     interconnecting routers forming a backbone.                       NE020:Distributed                                                                         Classical enterprise networking with                              Routing with FDDI                                                                         interconnected routers and FDDI as the backbone.                  NE030:Hierarchical                                                                        Switch-based enterprise networking with                           Switches    hierarchical switches.                                            NE040:Distributed                                                                         Switch-based enterprise networking with                           Switches    interconnecting switches forming a backbone.                      NE045:Switches with                                                                       Switch-based enterprise networking with                           FDDI        interconnecting switches and FDDI as the                                      backbone.                                                         NE050:Switches with                                                                       Switch-based enterprise networking with a                         Centralized Router                                                                        centralized router.                                               NE060:Switches with                                                                       Switch-based enterprise networking with a                         Distributed Routers                                                                       centralized switch and distributed routers.                       NE075:ATM with                                                                            ATM-based enterprise networking with                              Hierarchical Switches                                                                     hierarchical switches.                                            NE080:End-To-End                                                                          End-To-End ATM networking with hierarchical                       ATM with Hierarchi-                                                                       ATM switches.                                                     cal Switches                                                                  NE085:ATM with                                                                            ATM-based enterprise networking with                              Distributed interconnecting ATM switches forming a                            Switches    backbone.                                                         NE090:End-To-End                                                                          End-To-End ATM networking with                                    ATM with Distributed                                                                      interconnecting ATM switches forming a                            Switches    backbone.                                                         NE092:ATM with                                                                            ATM-based enterprise networking with                              FDDI        interconnecting ATM switches and FDDI as the                                  backbone.                                                         NE095:End-To-End                                                                          End-To-End ATM networking with                                    ATM with FDDI                                                                             interconnecting ATM switches and FDDI as the                                  backbone.                                                         NE097:ATM with                                                                            ATM-based enterprise networking with a                            Centralized Router                                                                        centralized router.                                               NE100:End-To-End                                                                          End-To-End ATM networking with a centralized                      ATM with Centralized                                                                      router.                                                           Router                                                                        NE105:ATM with                                                                            ATM-based enterprise networking with a                            Distributed centralized ATM switch and distributed routers.                   Routers                                                                       NE110:End-To-End                                                                          End-To-End ATM networking with a centralized                      ATM with Distributed                                                                      ATM switch and distributed routers.                               Routers                                                                       NE115:ATM with                                                                            ATM-based enterprise networking with a                            Redundant FDDI                                                                            redundant FDDI backbone.                                          NE120:End-To-End                                                                          End-To-End ATM networking with a redundant                        ATM with Redundant                                                                        FDDI backbone.                                                    FDDI                                                                          NR000:Remote Access                                                                       Remote access to corporate network via Public                     via PSTN    Switched Telephone Network (PSTN).                                NR010:Remote Access                                                                       Remote access to corporate network via ISDN-                      via ISDN-BRI                                                                              BRI (Basic Rate Interface).                                       NR020:Remote Access                                                                       Remote access to corporate network via the                        via Internet                                                                              Internet.                                                         NR030:Remote                                                                              Remote access to corporate network via PSTN                       Control via using remote control software to communicate                      PSTN        with host PC.                                                     NR040:Remote                                                                              Remote access to corporate network via ISDN-                      Control via BRI using remote control software to                              ISDN-BRI    communicate with the host PC.                                     NI000:Router-Based                                                                        Internet networking with router-based external                    External Web                                                                              Web service.                                                      NI010:Router-Based                                                                        Internet networking with router-based interna1                    Internal Web                                                                              Web service.                                                      NI020:Dual-Homed                                                                          Internet networking with dual-homed external                      External Web                                                                              Web service.                                                      NI030:Dual-Homed                                                                          Internet networking with dual-homed internal                      Internal Web                                                                              Web service.                                                      NI040:Dual-Homed                                                                          Internet networking with dual-homed hybrid                        Hybrid Web  Web service.                                                      NI050:Screened-Host                                                                       Internet networking with screened-host gateway                    Gateway     Web service.                                                      NI060:Screened                                                                            Internet networking with screened router-based                    Router-Based                                                                              subnet Web service.                                               Subnet                                                                        NI070:Screened                                                                            Internet networking with screened gateway-based                   Gateway-Based                                                                             subnet Web service.                                               Subnet                                                                        NI080:Stand-Alone                                                                         Internet networking with stand-alone router-                      Router-Based                                                                              based Web service.                                                NI090:Stand-Alone                                                                         Internet networking with Stand-alone dual-                        Dual-Homed  homed Web service.                                                NT000:Unsecured                                                                           Intranet networking with unsecured Web                            Web         service.                                                          NT010:Router-Based                                                                        Intranet networking with router-based Web                         Web         service.                                                          NT020:Dual-Homed                                                                          Intranet networking with dual-homed Web                           Web         service.                                                          NT030:Dual-Homed                                                                          Intranet networking with dual-homed hybrid                        Hybrid Web  Web service.                                                      NT040:Screened-Host                                                                       Intranet networking with screened-host gateway                    Gateway Web Web service.                                                      ______________________________________                                    

    ______________________________________                                        APPENDIX B - EXAMPLES OF ARCHITECTURE DESCRIPTIONS                                   Desc.                                                                  Arch. ID                                                                             Type    Architecture Description                                       ______________________________________                                        12000  Minus   The primary problem with this architecture is that it                         can only support a very limited number of users.                              Because the entire network is a single LAN seg-                               ment, traffic congestion in one department affects                            all other departments. Broadcast messages from a                              server can cause network congestion for the                                   entire LAN.                                                    12000  Plus    This architecture is one of the simplest corporate                            backbone structure to implement. It requires very                             little setup and configuration. It is also a low                              cost solution for connecting departmental LANs.                12000  Long    This architecture utilizes simple fast ethernet                               connections as a backbone linking hubs together.                              The hub connection can use either category 5 UTP                              (unshielded twisted pair) or fiber optic cable.                               This architecture is suitable for a small company or                          organization where each department's computers                                are attached to a hub. The hubs are daisy chained                             by fast ethernet connections. The entire network                              forms a single LAN segment.                                    12130  Minus   The collapsed backbone configuration tends to                                 utilize much more cable than other configurations.                            The cable also has a distance limitation.                                     Workgroups that are far apart may not be able to                              connect to the hub. Finally, the hub becomes a                                single point of failure for the entire network.                               Switches can be expensive and they add to network                             overhead. A switch is also an additional device                               on the network which must be maintained, and                                  which can possibly be a point of failure or                                   network problems. Switches cannot solve all                                   the network problems. If an application requires                              higher speed network access than the current                                  LAN bandwidth limitation, you will have to                                    upgrade to a higher speed LAN protocol. Because                               switches generally operate at the data-link                                   protocol layer, it cannot filter out broadcast                                messages. A single broadcast message can cause                                the switch to transmit the message to all                                     connected hosts, thereby creating network                                     delays. In general, switches can only be scaled                               to over a few hundred host connections.                                       The communication delay between a server and                                  its clients may increase because servers are                                  not localized to the individual workgroup that                                utilize them.                                                  12130  Plus    The collapsed backbone architecture concentrates                              the majority of critical network components in                                a single box thereby simplifying network                                      administration. The high speed backplane in                                   the backbone hub can operate at a much higher                                 bandwidth than normal LAN protocol.                                           Switches reduce packet collisions and conten-                                 tions in a congested network by microsegmenting                               the LAN. One of the fastest and most economical                               ways of upgrading the performance of a network                                is to replace a hub with a switch. This modifi-                               cation requires no change to the underlying                                   cabling structure and provides instant relief.                                Centralized administration allows for simplified                              maintenance of the system. Hardware and resources                             are placed in the same physical location. System                              problems can be serviced faster because personnel                             are normally in close proximity to the equipment.                             Trained personnel are always nearby to perform                                hardware and software enhancements, and improve                               performance optimization. Additionally the                                    servers enjoy greater security because a single                               security standard can be applied to all of the                                servers.                                                       12130  Long    This architecture utilizes a single switching hub                             in a collapsed backbone configuration. The servers                            are centrally administered in a server farm.                                  The collapsed backbone configuration utilizes a                               single switching or routing hub as the central                                wiring concentrator. The hub usually contains a                               high speed backplane that allows multiple hub                                 modules to communication with each other.                                     Switches are devices that can reduce collisions                               and contentions among shared network topologies                               by reducing the number of nodes on a segment                                  using microsegmentation techniques. On a micro-                               segmented network, a local area network (LAN)                                 segment can have just one node. The switch then                               handles all the connections between nodes on                                  different LAN segments. With switching tech-                                  nology LANs can be segmented, with the switch                                 handling traffic between segments much like a                                 bridge, but without the slower throughput of a                                bridge.                                                                       The centralized administration architecture                                   places critical corporate servers in a central                                location known as a server farm. The servers                                  are managed and backed up by a team of                                        maintenance staff. To reduce network bottleneck,                              the servers have a dedicated high speed connection                            to the corporate backbone.                                     14000  Minus   This architecture works well only when there is                               not too much internetwork traffic. In a dynamic                               environment where the users' computing needs                                  require access to other department's servers,                                 the central router may be overloaded and become                               the critical bottleneck. Furthermore, if the                                  central router fails, the enterprise becomes                                  segmented.                                                                    This architecture requires a large amount of                                  cabling to connect all the LANs to a single                                   router. The physical cable limitation may make                                this architecture unsuitable for metropolitan                                 networks.                                                      14000  Plus    This configuration is highly scalable. New LAN                                segments can be attached to the central router                                easily. The underlying technology is stable and                               time tested. Internetwork packets from one host                               to another only need to pass through a single                                 router, therefore there are no packet delays                                  caused by multiple router hops.                                14000  Long    This architecture utilizes a central router to                                connect all the departmental LANs and WANs into                               an enterprise network. In this configuration                                  the router isolates all the network traffic                                   for a department locally while it routes                                      inter-departmental packets from one LAN segment                               to another. The central router does not usually                               connect directly to the end-users. Rather, the                                router connects to department level switches                                  or routers via high speed links such as                                       100Base-T. The central router may also connect                                with the corporate server farm, thus providing                                high speed access to these servers.                            16020  Minus   Proxies require the clients to be enabled for                                 proxying. In the case of Netscape, it is simply                               a matter of inputting the IP addresses of the                                 proxies into your user preferences. In the case                               of SOCKS, however, this means re-compiling the                                source code for the clients to use SOCKS socket                               libraries in place of standard sockets libraries.                             The proxy server may become a major bottleneck                                for the system, as all traffic must pass through                              it to get to the LAN.                                          16020  Plus    Internet users can access your services without                               having to pass through the application gateway                                (proxy server), yet will be prevented by the                                  proxy server from accessing your LAN.                                         LAN users can get easy access to the Internet                                 and the corporate Web server.                                  16020  Long    Hosts connecting to your Web server from the                                  Internet hit the Web and other Internet servers                               directly. As the dual-homed host has two network                              interface cards (NICs) separated from one another,                            traffic is restricted based upon application                                  gateway software.                                                             This architecture is primarily geared towards                                 having your Internet services made available to                               the public, while only allowing traffic to come                               from the LAN, not directly to it. This is enabled                             by the way the proxy works: the proxy server will                             take a request for a specific service, replace                                the requesting host's name with its own, and                                  forward the revised request to the intended                                   host. The server now thinks that the proxy is                                 the requester, and knows nothing about the host                               which made the initial request, thus the server's                             reply can only be sent to the proxy, not to the                               actual client sitting on the LAN.                              ______________________________________                                    

APPENDIX C--LISTING OF QUESTIONS FOR ARCHITECTURE ADVISOR

Questions asked by the Architecture Advisor are listed below. One ormore questions are grouped under the section heading in which theyappear, and the list of possible responses for each question is shown.

Note that the user is not asked all possible questions because theexpert system provides "question branching". Depending on the answer tocertain questions, "question branching" takes place, and subsequentquestions are asked depending on prior answers. For example, in the"Objective" section, the user is asked what kind of network needs to beconfigured (i.e., workgroup, corporate, branch office, enterprise,remote users, or web site). The next set of questions will then dependon the answer, e.g., the "Workgroup" section, "Corporate" section,"Branch Office" section, and so forth, will then be asked. Within agiven section, however, all questions will be asked.

Format of Listing

The format for listing the questions and possible responses is

Section Name 1

Question 1

Possible response 1

Possible response 2

. .

Question 2

. .

Section Name 2

Question 1

. .

QUESTIONS ASKED BY ARCHITECTURE ADVISOR

Objective Section

Question 1

What type of network do you need to configure? (choose one)

Workgroup LAN

Corporate backbone

Branch office

Enterprise network

Remote users

World Wide Web service

Data Warehouse

Question 2

What is the most critical success factor for building the network?(choose one)

Cost optimization

Reliability and cost

Management and security

Performance optimization

Scalability

Question 3

What is the NEXT most critical success factor for building the network?(choose one)

Cost optimization

Reliability and cost

Management and security

Performance optimization

Scalability

Question 4

Do you expect your network to be more user-intensive orbandwidth-intensive? (choose one)

User-intensive

Bandwidth-intensive

Both

Neither

Workgroup Networking Section

Question 1

Do you have a LAN strategy that you need to preserve? (choose one)

Ethernet

Token Ring

ARCnet

No

Question 2

Do you want to build a wireless LAN for mobile users? (choose one)

Yes

No

Question 3

What is the primary type of LAN usage for this workgroup? (choose one)

File services

Database services

Multimedia and imaging

Video conferencing

Question 4

What is the total number of nodes that will be attached to the network?(choose one)

Less than 10

Between 10 and 50

Between 50 and 100

Greater than 100

Corporate networking

Question 1

Do you want to manage the corporate servers centrally?

Yes

No

Question 2

Do you want to manage the critical network components centrally?

Yes

No

Question 3

Are you planning a land-based corporate backbone or do you need toconfigure a wireless backbone?

Land-based

Wireless

Question 4

What is the geographic configuration of your planned corporate network?

Single corporate building

Local buildings

Metropolitan buildings

Question 5

What is the total number of nodes that will be attached to the corporatenetwork?

Less than 100

Between 100 and 500

Between 500 and 1000

Greater than 1000

Branch office

Question 1

How many branch offices will be participating in the networkarchitecture?

Less than 10

10--100

Greater than 100

Question 2

What are the bandwidth requirements for branch office communication?

56K bps or less

Between 56K and 1.5M bps

Greater than 1.5M bps

Unknown

Question 3

What type of connectivity will the branch offices require?

Multipoint connectivity

Headquarters only

Question 4

What frequency of access do you expect the branch offices will requirefor communications across the wide area network?

Frequent

Occasional

Question 5

What type of data do you want to optimize the branch office wide areanetwork for?

Data--Terminal emulation

Data--File transfer

Data--Client/Server

Data and voice

Multimedia

Question 6

Do you want to install redundant WAN links for fault tolerance?

Yes

No

Enterprise

Question 1

Do you want to preserve an existing network

FDDI backbone

Distributed Router/bridge

Collapsed backbone

Other types

No

Question 2

Do you want to optimize your network to allow for the flexiblereorganization of end-user workgroups?

Yes

No

Question 3

Do you need to deliver advanced network capabilities to the end users?

Multimedia or imaging

Video conferencing

No

Remote Access

Question 1

What is the primary type of network usage for the remote users?

Terminal services

File services

Client/Server services

Application services

Multimedia/imaging/video

Question 2

Do the users need to run programs that require intensive processing ordisk I/O?

Yes--all the time

Yes--sometimes

No

Internet

Question 1

Do you want to build a Web site for public access, internal corporateaccess, or both?

Internal only

Public only

Both

Question 2

In what order do you want to optimize on security, performance and cost?

Security--cost--performance

Security--performance--cost

Performance--cost--security

Performance--security--cost

Cost--performance--security

Cost--security--performance

Internet security

Question 1

What type of external public users will be accessing the Web service?

General public

Special subscription users

Both

Question 2

What part of your network do you want to secure against intrusion?

Corporate LAN

Web servers

Both

Intranet security

Question 1

What level of Internet security do you want to impose for the internalWeb users?

High

Medium

Low

Data Warehouse Section

Question 1.

What type of organization will utilize the data warehouse? (choose one)

Work Group

Corporate

Branch Office

Enterprise

Question 2.

What kind of queries and reports need to be supported? (choose anynumber)

trend analysis on product, sales, and events

analysis of financial information

exception reporting

budgeting, planning, and forecasting

Question 3.

What is the length of time you have to complete the project? (chooseone)

1 to 2 months

2 to 6 months

6 to 12 months

Greater than 1 year

Question 4.

What query performance will be acceptable to the users? (choose one)

Under 10 seconds

10 seconds to 1 minute

Between 1 and 5 minutes

Greater than 5 minutes

Question 5.

What are your growth requirements over the anticipated lifetime of thesystem? (choose one)

Less than 50% growth

Between 50% and 100% growth

Between 100% and 200% growth

Over 200% growth

Question 6.

Do you want to utilize your existing corporate database technology inyour data warehouse? (choose one)

Yes

No

Don't care

Question 7.

What are the data capacity requirements? (choose one)

1 Gigabyte or less

1 to 20 Gigabytes

20 to 100 Gigabytes

100 Gigabytes or greater

Question 8.

How current does the underlying data in the data warehouse need to be?(choose one)

The data in the data warehouse must instantly reflect changes in theunderlying business data

Refresh several times daily

Refresh nightly

Refresh weekly

Question 9.

What is the most critical success factor for the data warehouse project?(choose one)

Cost

Performance

Anticipated growth

Ease of use

Ease of administration

Question 10.

Who will be using the system? (choose any number)

Senior corporate management

Business managers

Technical managers

Support staff

APPENDIX D--EXAMPLE OF DETERMINATION OF REQUIRED QUALITIES

Section 1. User Questionnaire

A set of questions with the possible responses is shown below. A user'ssample answers are shown with an arrow. The facts that are loaded intothe fact list, depending on the user's selected answers, is then listed.The hierarchical nature of the questions is also illustrated, with onlythose questions being asked that pertain to previous answers.

Question 1. Organization

What type of organization will utilize the data warehouse? (choose one)

    ______________________________________                                        • Work Group                                                            • Corporate                                                             • Branch Office                                                         • Enterprise  ← User Answer                                        ______________________________________                                    

Question 2. Queries and Reports

What kind of queries and reports need to be supported? (choose anynumber)

    ______________________________________                                        • trend analysis on product, sales, and events                                                      ←                                            • analysis of financial information                                                                 ←                                            • exception reporting                                                   • budgeting, planning, and forecasting                                  ______________________________________                                    

Question 3. Project Schedule

What is the length of time you have to complete the project? (chooseone)

    ______________________________________                                        • 1 to 2 months                                                         • 2 to 6 months    ←                                               • 6 to 12 months                                                        • Greater than 1 year                                                   ______________________________________                                    

Question 4. Desired Performance

What query performance will be acceptable to the users? (choose one)

    ______________________________________                                        • Under 10 seconds ←                                               • 10 seconds to 1 minute                                                • Between 1 and 5 minutes                                               • Greater than 5 minutes                                                ______________________________________                                    

Question 5. Growth Requirements

What are your growth requirements over the anticipated lifetime of thesystem? (choose one)

    ______________________________________                                        • Less than 50% growth                                                  • Between 50% and 100% growth                                                                     ←                                              • Between 100% and 200% growth                                          • Over 200% growth                                                      ______________________________________                                    

Question 6. Existing Database

Do you want to utilize your existing corporate database technology inyour data warehouse? (choose one)

    ______________________________________                                                • Yes                                                                   • No                                                                    • Don't care                                                                           ←                                                 ______________________________________                                    

Question 7. Data Capacity

What are the data capacity requirements? (choose one)

    ______________________________________                                        • 1 Gigabyte or less                                                    • 1 to 20 Gigabytes                                                     • 20 to 100 Gigabytes                                                                            ←                                               • 100 Gigabytes or greater                                              ______________________________________                                    

Question 8. Data Refresh Rate

How current does the underlying data in the data warehouse need to be?(choose one)

    ______________________________________                                        • The data in the data warehouse must instantly reflect                  changes in the underlying business data                                      • Refresh several times daily                                                                        ←                                           • Refresh nightly                                                       • Refresh weekly                                                        ______________________________________                                    

Question 9. Critical Success Factor

What is the most critical success factor for the data warehouse project?(choose one)

    ______________________________________                                        • Cost                                                                  • Performance                                                           • Anticipated growth                                                                             ←                                               • Ease of use                                                           • Ease of administration                                                ______________________________________                                    

Question 10. Typical Users

Who will be using the system? (choose any number)

    ______________________________________                                        • Senior corporate management                                                                     ←                                              • Business managers                                                     • Technical managers                                                    • Support staff                                                         ______________________________________                                    

Fact List Based On User's Sample Answers

Table D-1 provides the fact list of (attribute, value) pairs derivedfrom the user's answers.

                  TABLE D-1                                                       ______________________________________                                        Sample Fact List                                                              Attribute             Value                                                   ______________________________________                                        "FACT.sub.-- ORGANIZATION"                                                                          "ENTERPRISE"                                            "FACT.sub.-- QUERY.sub.-- TYPE"                                                                     "TRENDING"                                              "FACT.sub.-- QUERY.sub.-- TYPE"                                                                     "FINANCIAL"                                             "FACT.sub.-- SCHEDULE"                                                                              "HALF.sub.-- YEAR"                                      "FACT.sub.-- PERFORMANCE"                                                                           "VERY.sub.-- FAST"                                      "FACT.sub.-- GROWTH"  "MEDIUM"                                                "FACT.sub.-- CORP.sub.-- RDBMS"                                                                     "DONT.sub.-- CARE"                                      "FACT.sub.-- CAPACITY"                                                                              "LARGE"                                                 "FACT.sub.-- DATA.sub.-- REFRESH"                                                                   "HOURLY"                                                "FACT.sub.-- SUCCESS.sub.-- FACTOR"                                                                 "GROWTH"                                                "FACT.sub.-- USERS"   "CORPORATE"                                             ______________________________________                                    

Section 2. Qualities

Table D-2 lists the qualities that need to be determined from the user'sanswers to the questionnaire.

                  TABLE D-2                                                       ______________________________________                                        Qualities                                                                     Qual                     Parent  Quality Possible                             ID    Quality Name       Qual ID Values                                       ______________________________________                                        131   Corporate Repository (Symbol)                                                                            YES, NO                                      116   Performance (Level)                                                                              109     1,2,3,4                                      123   Database Size Scalability (Level)                                                                        1,2,3,4                                      132   Flexibility (Level)        1,2,3                                        107   Data Volume (Level)                                                                              106     1,2,3,4                                      133   Data Volatility (Level)    1,2,3,4                                      100   Cost (Level)               1,2,3,4                                      135   Implementation Effort (Level)                                                                            1,2,3                                        105   System Management (Level)  1,2,3                                        136   Local Data Views Required  YES, NO                                            (Symbol)                                                                ______________________________________                                    

Section 3. Expert System Rules

Here are the rules that will be used to determine the set of requiredqualities from the answers to the questionnaire.

    __________________________________________________________________________    Rule 400                                                                      If   FACT.sub.-- CORP.sub.-- RDBMS! = "YES"                                   Then                                                                               setqual CORPORATE.sub.-- REPOSITORY! = "YES"                             Rule 410                                                                      If   FACT.sub.-- CORP.sub.-- RDBMS! in ("NO", "DONT.sub.-- CARE")             Then                                                                               setqual CORPORATE.sub.-- REPOSITORY! = "NO"                              Rule 420                                                                      If   FACT.sub.-- ORGANIZATION! in ("CORPORATE", "ENTERPRISE")                  and                                                                               FACT.sub.-- QUERY! = "EXCEPTION"                                         Then                                                                               setqual FLEXIBILITY! = 2                                                      setqual PERFORMANCE! = 2                                                 Rule 430                                                                      If   FACT.sub.-- ORGANIZATION! in ("CORPORATE", "ENTERPRISE")                  and                                                                               FACT.sub.-- QUERY! in ("TRENDING", "FINANCIAL", "PLANNING")              Then                                                                               setqual FLEXIBILITY! = 3                                                      setqual PERFORMANCE! = 3                                                 Rule 440                                                                      If   FACT.sub.-- ORGANIZATION! in ("WORKGROUP", "BRANCH.sub.-- OFFICE")       Then                                                                               setqual FLEXIBILITY! = 1                                                      setqual PERFORMANCE! = 1                                                 Rule 450                                                                      If   FACT.sub.-- ORGANIZATION! in ("CORPORATE", "ENTERPRISE")                 Then                                                                               setqual LOCAL.sub.-- DATA.sub.-- VIEW! = "YES"                           Rule 460                                                                      If   FACT.sub.-- ORGANIZATION! in ("WORKGROUP", "BRANCH.sub.-- OFFICE")       Then                                                                               setqual LOCAL.sub.-- DATA.sub.-- VIEW! = "NO"                            Rule 470                                                                      If   FACT.sub.-- ORGANIZATION! in ("WORKGROUP", "BRANCH.sub.-- OFFICE")       Then                                                                               setqual DATA.sub.-- VOLUME! = 1                                               setqual SYSTEM.sub.-- MANAGEMENT! = 1                                         setqual COST! = 1                                                        Rule 480                                                                      If   FACT.sub.-- ORGANIZATION! = "ENTERPRISE"                                 Then                                                                               setqual DATA.sub.-- VOLUME! = 3                                               setqual SYSTEM.sub.-- MANAGEMENT! = 3                                         setqual COST! = 3                                                        Rule 490                                                                      If   FACT.sub.-- ORGANIZATION! = "CORPORATE"                                   and                                                                               FACT.sub.-- USERS! = "CORPORATE"                                         Then                                                                               setqual DATA.sub.-- VOLUME! = 3                                               setqual SYSTEM.sub.-- MANAGEMENT! = 2                                         setqual COST! = 2                                                        Rule 500                                                                      If   FACT.sub.-- ORGANIZATION! = "CORPORATE"                                   and                                                                               FACT.sub.-- USERS! = "STAFF"                                             Then                                                                               setqual DATA.sub.-- VOLUME! = 3                                               setqual SYSTEM.sub.-- MANAGEMENT! = 1                                         setqual COST! = 2                                                        Rule 510                                                                      If   FACT.sub.-- ORGANIZATION! = "CORPORATE"                                   and                                                                               FACT.sub.-- QUERY! = "EXCEPTION"                                         Then                                                                               setqual DATA.sub.-- VOLUME! = 1                                               setqual SYSTEM.sub.-- MANAGEMENT! = 1                                         setqual COST! = 1                                                        Rule 520                                                                      If   FACT.sub.-- SUCCESS.sub.-- FACTOR! = "GROWTH"                             and                                                                               FACT.sub.-- GROWTH! = "UNLIMITED"                                        Then                                                                               setqual DATA.sub.-- SCALEABILITY! = 3                                    Rule 530                                                                      If   FACT.sub.-- GROWTH! in ("SMALL", "MEDIUM")                               Then                                                                               setqual DATA.sub.-- SCALEABILITY! = 1                                    Rule 540                                                                      If   FACT.sub.-- GROWTH! = "LARGE"                                            Then                                                                               setqual DATA.sub.-- SCALEABILITY! = 2                                    Rule 550                                                                      If   FACT.sub.-- DATA.sub.-- REFRESH! = "INSTANTLY"                            and                                                                               FACT.sub.-- PERFORMANCE! = "VERY FAST"                                   Then                                                                               setqual DATA.sub.-- VOLATILITY! = 4                                      Rule 560                                                                      If   FACT.sub.-- DATA.sub.-- REFRESH! = "INSTANTLY"                            and                                                                               FACT.sub.-- PERFORMANCE! in ("FAST", "SLOW", "MEDIUM")                   Then                                                                               setqual DATA.sub.-- VOLATILITY! = 3                                      Rule 570                                                                      If   FACT.sub.-- DATA.sub.-- REFRESH! = "HOURLY"                              Then                                                                               setqual DATA.sub.-- VOLATILITY! = 2                                      Rule 580                                                                      If   FACT.sub.-- DATA.sub.-- REFRESH! in ("NIGHTLY", "WEEKLY")                Then                                                                               setqual DATA.sub.-- VOLATILITY! = 1                                      Rule 590                                                                      If   FACT.sub.-- PERFORMANCE! in ("MEDIUM", "SLOW")                           Then                                                                               setqual EFFORT! = 1                                                      Rule 600                                                                      If   FACT.sub.-- PERFORMANCE! in ("FAST", "VERY.sub.-- FAST")                  and                                                                               FACT.sub.-- CAPACITY! in ("SMALL", "MEDIUM")                             Then                                                                               setqual EFFORT! = 2                                                      Rule 610                                                                      If   FACT.sub.-- PERFORMANCE! in ("FAST", "VERY.sub.-- FAST")                  and                                                                               FACT.sub.-- CAPACITY! = "LARGE"                                           and                                                                               FACT.sub.-- ORGANIZATION! in                                             ("WORKGROUP", "CORPORATE", "BRANCH.sub.-- OFFICE")                            Then                                                                               setqual EFFORT! = 3                                                      Rule 620                                                                      If   FACT.sub.-- PERFORMANCE! in ("FAST", "VERY.sub.-- FAST")                  and                                                                               FACT.sub.-- CAPACITY! = "UNLIMITED"                                      Then                                                                               setqual EFFORT! = 4                                                      Rule 630                                                                      If   FACT.sub.-- SCHEDULE! in ("MONTHS", "HALF.sub.-- YEAR")                   and                                                                                FACT.sub.-- CAPACITY! in ("LARGE", "UNLIMITED")                          and                                                                                FACT.sub.-- ORGANIZATION! = "ENTERPRISE"                                Then                                                                               setqual EFFORT! = 4                                                           setqual COST! = 4                                                        __________________________________________________________________________

Section 4. List of Required Qualities Determined by Expert System

Table D-3 lists the required qualities derived by the expert system fromthe fact list using the above listed rules. In this example, the qualityweights have been assigned based on system default weights.

                  TABLE D-3                                                       ______________________________________                                        Sample Required Qualities                                                                          Quality Quality                                          Quality              Value   Weights                                          ______________________________________                                        CORPORATE REPOSITORY NO       1                                               FLEXIBILITY          3       10                                               PERFORMANCE          3       40                                               DATA VOLATILITY      2        1                                               IMPLEMENTATION EFFORT                                                                              4        1                                               COST                 4       80                                               LOCAL DATA VIEWS REQUIRED                                                                          YES      1                                               DATABASE VOLUME      3        1                                               DATABASE SIZE SCALEABILITY                                                                         1       10                                               SYSTEM MANAGEMENT    3       10                                               ______________________________________                                    

I claim:
 1. A quality driven expert system, executable on a computersystem including a processor, the system comprising:a user questionnairemodule that presents a plurality of questions to a user and receives aplurality of answers; an expert system module that maps the answers intoa set of qualities to determine a set of required qualities, eachrequired quality having a first quality value derived from at least oneanswer; a database of output entities, each output entity defined byselected ones of the qualities, each selected quality of an outputentity having a second quality value; and a matching algorithm modulethat receives the required qualities from the expert system and comparesthe first quality values of the required qualities to the second qualityvalues of selected ones of the qualities of the output entities todetermine a ranked set of output entities that satisfy the requiredqualities.
 2. The expert system of claim 1, wherein:the matchingalgorithm module outputs for each selected output entity a score as afunction of whether the second quality values of the selected ones ofthe qualities satisfy the first quality values of the requiredqualities.
 3. The expert system of claim 2, wherein:each requiredquality has a quality operator; and the score of an output entity isdetermined by whether for each required quality, the each second qualityvalue of a corresponding selected quality of the output entity satisfiesthe quality operator and first quality value of the required quality. 4.The expert system of claim 2, wherein:a at least one required qualityhas a quality weight derived from the user's answers; and the score ofeach output entity is a function of the weight of at least one requiredquality.
 5. The expert system of claim 1, wherein the qualities areorthogonal.
 6. The expert system of claim 1, wherein at least onequality is hierarchically defined by at least two other qualities. 7.The expert system of claim 1, wherein the expert system includes atleast one rule including an antecedent defining a value of a fact, and aconsequent defining a value to be assigned to a quality.
 8. A computermediated process of selecting a network architecture for a computernetwork, comprising:presenting a plurality of questions to a userregarding the user's requirements for the computer network; receivingfrom the user answers to the questions; deriving from the user's answersa set of required qualities for the network architecture, each requiredquality having a requird quality value; providing a plurality of networkarchitectures, each network architecture defined by selected ones of theset of qualities, each of the selected ones of the qualities having adefined quality value; and selecting at least one network architectureby comparing the required values of the required qualities to thedefined values of the qualities of a network architecture.
 9. The methodof claim 8, further comprising:providing a selection explanation of eachselected network to the user, the selection explanation describing foreach required quality the degree to which the selected networkarchitecture satisifies the required quality.
 10. The method of claim 8,further comprising:wherein selecting at least one network architectureby comparing the required values of the required qualities to thedefined values of the qualities of a network architecture,comprises:selecting at least one network architecture as a function of adifference between the required values of the required qualities anddefined values of the qualities of the network architecture.
 11. Themethod of claim 10, further comprising:determining for at least onerequired quality a weight of the required quality; and wherein thedifference between a required value of a required quality and a definedvalue is weighted by the weight of the required quality.
 12. The methodof claim 8 wherein the qualities are orthogonal.
 13. The method of claim8 wherein at least one quality is hierarchically defined by at least twoother qualities.
 14. A quality driven expert system for selecting anetwork architecture, executable on a computer system including aprocessor, the system comprising:a database of network architectures,each defined by selected ones of a set of qualities, each selectedquality of an network architecture having a defined quality value; auser questionnaire module that presents a plurality of questions to auser and receives a plurality of answers; an expert system module thatreceives the answers from the user questionnaire module and derives fromthe answers a set of required qualities, each required quality having arequired quality value; a matching algorithm module, coupled to thedatabase, that receives the required qualities from the expert systemand determines a score for at least one network architecture from thedatabase by determining for each required quality, whether the definedquality value of a quality of the network architecture corresponding tothe required quality satisfies the quality value of the requiredquality, matching algorithm module ranking the network architectures bytheir scores.
 15. The expert system of claim 14, wherein the matchingalgorithm produces for each network architecture that is scored aselection explanation, the selection explanation indicating for eachrequired quality the degree to which the required quality was satisifiedby a corresponding quality of the network architecture.